- SpringBoot 入门
- SpringBoot 基本原理
- SpringBoot 自定义配置
- SpringBoot 热部署配置
- SpringBoot 进行 Junit 测试
- SpringBoot 整合 MyBatis
- SpringBoot 事务配置
- SpringBoot 与 JSP 集成
- SpringBoot 项目的 WAR 部署方式
- SpringBoot 整合 WebSocket
- SpringBoot 中 MVC 解决日期转换配置
- SpringBoot 中 Jackson 的使用
- SpringBoot 聚合项目创建时 父工程不再是 spring boot starter parent 如何解决
- SpringBoot 使用 CORS 解决跨域问题
- SpringBoot 手动回滚事务
- SpringBoot 项目中 AOP 的配置
- SpringBoot 项目配置文件加密
- SpringBoot 配置文件读取
- 请求参数注解校验
- SpringApplication 源码分析
- SpringBoot 自动配置基本原理
- 自定义 SpringBoot starter
- SpringBoot 自动配置之条件注解
- SpringBoot SPI 机制
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
SpringBoot 热部署配置
第一步:在pom文件中引入spring-boot-devtools模块
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
第二步:配置spring-boot-maven-plugin插件
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!--如果没有该配置,devtools不会起作用-->
<fork>true</fork>
</configuration>
</plugin>
</plugins>
配置完成后,我们修改源码或者配置文件项目会自动重启,但这种重启会比手动重启快很多。其深层原理是使用两个ClassLoader,一个ClassLoader加载那些不会改变的类(例如第三方jar包),另一个ClassLoader加载那些会改变的类,称为Restart ClassLoader。这样有代码更改的时候,原来Restart ClassLoader加载的类会被丢弃,而重新加载被更改的类,这样速度就会比手动重启更快。
可能出现的问题
有的小伙伴使用IDEA时配置热部署后仍然不能自动重启服务器,这可能是因为你的IDEA没有配置文件自动编译,如果不配置自动编译,在你按Ctrl+s时就不会重新编译源文件,项目则不会自动重启。
第一步:
如果不勾选该选项,我们也可以手动编译源文件(Ctrl+F9),如果只更改了一个项目,我们可以按Ctrl+Shift+F9,重新编译该类文件,即可触发重启服务。
第二步:按快捷键Ctrl+Shift+Alt+/,选择1.Registry...
第三步:勾选 compiler.automake.allow.when.app.running 即可
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论