1、需求分析:spring
编写idea中编写项目时,常常性改某几行代码就须要从新启动项目,比较浪费时间,借助idea的热部署能够实现代码的热部署
springboot
2、实现通过app
这边能够借助spring-boot-devtools模块进行配置,devtools会检测代码,并进行从新发布。devtools的实现原理是经过使用两个maven
ClassLoader,一个用来加载一些第三方的代码(如引入的一些jar包)。另外一个ClassCLoud会加载一些会更改的代码,能够称ide
为restart ClassLoader。在有代码进行更改的时候,原来的restart ClassLoader会被清理,从新建立一个restart ClassLoader,spring-boot
因为须要加载的类较少,因此经过devtools的重启会比idea手动启动要快。ui
配置:idea
须要对pom.xml文件中添加以下依赖spa
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional><!-- optional=true,依赖不会传递,该项目依赖devtools;以后依赖myboot项目的项目若是想要使用devtools,须要从新引入 --> <scope>true</scope> </dependency>
<build> <plugins> <!--springloaded 热部署配置--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>true</fork><!--fork : 若是没有该项配置,肯呢个devtools不会起做用,即应用不会restart --> </configuration> </plugin> </plugins> </build>
而后须要对idea进行配置才能真正实现,经过快捷键Ctrl+Alt+S打开设置3d
idea配置:
当咱们修改了Java类后,IDEA默认是不自动编译的,而spring-boot-devtools又是监测classpath下的文件发生变化才会重启应用,因此需
要设置IDEA的自动编译:
(1)File-Settings-Compiler-Build Project automatically
若是是最新版本的idea则在以下的配置中
而后快捷键Ctrl+Alt+Shift+/打开设置面板选择Registry,找到key值为compiler.automake.allow.when.app.running,而后选择上关闭,重启idea
就能够了
3、其余方式
实际上经过idea自带的检查更新也可使用,且设置简单,只须要打开springboot项目运行配置里面,设置为检测更新便可