Spring提供了一个名为 spring-boot-devtools
的模块,使Spring Boot应用支持热部署,提高开发效率,无需手动重启Spring Boot应用。
一、配置pom.xml
1)加载maven依赖
<!--添加热部署--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> <scope>true</scope> </dependency>
optional=true,依赖不会传递,该项目依赖devtools;之后依赖myboot项目的项目如果想要使用devtools,需要重新引入
或者将optional,scope两行换成<scope>runtime</scope>
2)开启热部署
<!--热部署配置--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <!--fork:如果没有该项配置,整个devtools不会起作用--> <fork>true</fork> </configuration> </plugin>
二、配置IDEA
1)设置IDEA的自动编译:
“File”→“Settings(Ctrl+Alt+S
)”→“Build, Execution, Deplyment”→“Compiler”,选中“Build project automatically” 打勾
2)组合键 Shift+Ctrl+Alt+/
,选择 Registry
,找到compiler.automake.allow.when.app.running
,选中打勾。
(或者CTRL + SHIFT + A --> 查找Registry)
三、游览器设置
设置游览器禁用缓存:F12(或Ctrl+Shift+J或Ctrl+Shift+I),打开开发者工具 → NetWork → 勾选Disable Cache
至此配置完成,修改文件后不用重启,刷新页面即可看到效果
四、原理
原理是在发现代码有更改之后,重新启动应用,但是速度比手动停止后再启动更快。深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader。这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间。即devtools会监听classpath下的文件变动,并且会立即重启应用(发生在保存时机)
——摘抄
还有一篇相关文章写的也蛮好:点我到达
- 扫扫关注公众号
-
- 扫扫体验小程序
-
按照上面的多做了但是没有一点用,很难受
好好检查下,多百度下试试
为什么我的热部署没作用 上面的多做到了还是没一点用
好东西,可提高效率