【IntelliJ IDEA】spring boot项目在idea实现自动部署

转载参考自:https://www.cnblogs.com/winner-0715/p/6666579.html

 

spring-boot-devtools是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去。
原理是在发现代码有更改之后,重新启动应用,但是速度比手动停止后再启动更快。
其深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader
,这样在有代码更改的时候,原来的restart ClassLoader被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间。

即devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机)

一、开启idea自动make功能 

1、CTRL + SHIFT + A --> 查找make project automatically --> 选中 

 

 

2、CTRL + SHIFT + A --> 查找Registry --> 找到并勾选compiler.automake.allow.when.app.running 

 

 

二.pom.xml文件配置spring boot热部署插件

1、加maven依赖

<!--spring boot热部署插件-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>

 

2、开启热部署

<!--开启热部署-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork><!--这个必须加上-->
                </configuration>
            </plugin>
        </plugins>
    </build>

 

 

三、Chrome禁用缓存 
F12(或Ctrl+Shift+J或Ctrl+Shift+I)--> NetWork --> Disable Cache(while DevTools is open) 

 

 =====================================================================

修改完成!可以随时修改随时看到效果了【更改完成需要重启IDEA】

=====================================================================

 

测试方法:
1.修改类-->保存:应用会重启
2.修改配置文件-->保存:应用会重启
3.修改页面-->保存:应用会重启,页面会刷新(原理是将spring.thymeleaf.cache设为false)

不能使用分析:
1.对应的spring-boot版本是否正确,我这里使用的是1.5.3.RELEASE版本;
2.是否加入plugin了,以及属性<fork>true</fork>
3.Intellij IDEA是否开启了Make Project Automatically。
4.如果设置SpringApplication.setRegisterShutdownHook(false),则自动重启将不起作用。

 

时间: 2024-07-29 14:28:10

【IntelliJ IDEA】spring boot项目在idea实现自动部署的相关文章

在Spring Boot项目中使用Spock框架

Spock框架是基于Groovy语言的测试框架,Groovy与Java具备良好的互操作性,因此可以在Spring Boot项目中使用该框架写优雅.高效以及DSL化的测试用例.Spock通过@RunWith注解与JUnit框架协同使用,另外,Spock也可以和Mockito(Spring Boot应用的测试--Mockito)协同使用. 在这个小节中我们会利用Spock.Mockito一起编写一些测试用例(包括对Controller的测试和对Repository的测试),感受下Spock的使用.

spring boot项目中处理Schedule定时任务

默认,springboot已经支持了定时任务Schedule模块,所以一般情况已经完全能够满足我们的实际需求,一般来说,没有必要在加入其他类似于:quartz 另外,在这里提一个实际项目中,关于定时任务的架构上的一些考虑: 一般来说,实际项目中,为了提高服务的响应能力,我们一般会通过负载均衡的方式,或者反向代理多个节点的方式来进行.通俗点来说,我们一般会将项目部署多实例,或者说部署多份,每个实例不同的启动端口.但是每个实例的代码其实都是一样的.如果我们将定时任务写在我们的项目中,就会面临一个麻烦

spring boot项目中使用jpa的一个未解之谜

公司最近主要的工作就是把之前的一个项目进行几乎全面的重构,之所以说几乎全面,是因为除开业务逻辑外全部换血: 框架由spring+struts2+mybatis改为spring boot+jpa 数据库由sybase+h2改为oracle+redis 子系统之间的交互由activemq改为http 代码具体实现全部重写 对一个运行了若干年的项目进行这样的大动作,路程无疑是漫长而复杂的.在进行了一系列设计文档的编写.评审.修订.再评审之后,终于可以开始码代码了. 本以为码代码终于可以松一口气,没想到

【redis】5.spring boot项目中,直接在spring data jpa的Repository层使用redis +redis注解@Cacheable直接在Repository层使用,报错问题处理Null key returned for cache operation

spring boot整合redis:http://www.cnblogs.com/sxdcgaq8080/p/8028970.html 首先,明确一下问题的场景 之前在spring boot整合redis,关于redis的使用都是在repository层上再封装一层service层,在service层上使用的. 现在如果直接将redis的注解放在repository上使用,是个什么情况呢? 代码如下: 1.首先我有一个实体XxAdmin,主键为id 2.Xxadmin我写了一个AdminRep

Spring Boot 项目构建 之 使用 Spring Boot 构建应用(Building an Application with Spring Boot)

Table of contents What you'll build What you'll need How to complete this guide Build with Gradle Build with Maven Build with Spring Tool Suite Learn what you can do with Spring Boot Create a simple web application Create an Application class Run the

Spring Boot 项目构建 之 使用 Gradle 构建 Java 项目(Building Java Projects with Gradle)

Table of contents What you'll build What you'll need How to complete this guide Set up the project Install Gradle Find out what Gradle can do Build Java code Declare dependencies Build your project with Gradle Wrapper Summary Tags gradle Concepts and

选择Spring Boot项目的内嵌容器

Spring Boot工程的默认web容器是Tomcat,但是开发人员可以根据需要修改,例如使用Jetty或者Undertow,Spring Boot提供了对应的starters. How Do 在pom文件中排除tomcat的starter <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId&g

5.2. 运行 Spring boot 项目

5.2.1. Maven run $ mvn spring-boot:run $ mvn -P prod spring-boot:run -P 指定 profile 打包后,使用jar包运行 $ mvn verify $ mvn package $ java -jar target/api.netkiller.cn-0.0.1-SNAPSHOT.jar 5.2.2. Linux systemd /etc/systemd/system/spring.service ################

【spring boot】3.spring boot项目,绑定资源文件为bean并使用

整个例子的结构目录如下:   1.自定义一个资源文件 com.sxd.name = 申九日木 com.sxd.secret = ${random.value} com.sxd.intValue = ${random.int} com.sxd.uuid = ${random.uuid} com.sxd.age= ${random.int(100)} com.sxd.resume = 简历:①姓名:${com.sxd.name} ②年龄:${com.sxd.age}   2.将资源文件中的属性绑定到