SpringBoot热部署,解决SpringBoot频繁启动,开发效率低
1.引入热部署插件
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
增加完成热部署后,我们需要可以使用ctrl+f9,启动项目,达到热部署
那么ctrl+f9和重启项目有什么区别呢
重启(Restart):自定义开发代码,包含类,页面,配置文件等,加载位置restart类加载器(热部署)
重载(ReLoad):jar包,加载位置base类加载器。(重启项目)
注意:热部署仅仅加载当前开发者自定义开发的自愿,不加载jar资源
2.进一步完善
增加完成热部署后,我们修改完代码后,仍需要Ctrl+f9重新启动,虽然启动效率更快了一些,但似乎并没有什么卵用。
因此我们需要进一步的设置
2.1 在setting中进行设置
file-setting-build-compiler- 勾选Build project automatically
2.2 在maintenance中registery设置
在IDEA中按下Ctrl+shift+alt+/ 勾选 compiler.automake.allow.when.app.running 勾选完成后,当我们IEDA失去焦点5秒后,项目将自动进行重启
3.注意点
当我们的java文件发送变化时,在下一次热部署就会体现。
当我们的静态资源(界面等)发生变化,不会影响热部署,只要我们刷新界面就会发生效果的改变
- 默认不参与热部署的配置
- /META-INF/maven
- /META-INF/resources
- /resourses
- static
- /public
- templates
如果不想让某些文件夹不参加热部署,可以在配置中声明
devtools:
restart:
exclude: static/**
如果不想让当前项目参与热部署时,可以其后追加上 enable:true
注意:如果我们在项目中有比此配置文件优先级高时,我们可以在启动类中声明系统属性,此操作必定有效
@SpringBootApplication
public class SsmpApplication {
public static void main(String[] args) {
System.setProperty("spring.devtools.restart.enabled","false");
SpringApplication.run(SsmpApplication.class, args);
}
}
|