文章目录
- 目标:
- 1.手动启动热部署
- 2.自动启动热部署
- 4.禁用热部署
目标:
- 手动启动热部署
- 自动启动热部署
- 热部署范围配置
- 关闭热部署
1.手动启动热部署
当我们没有热部署的时候,我们必须在代码修改完后再重启程序,程序才会同步你修改的信息。如果我们想快速查看,那就需要用到热部署了。
先来想想热部署的思想是什么?当我们的服务器发现程序发生变化了那么就做一个重启 但是springboot中的tomcat服务器本身就是内嵌的,是程序的一部分,如何感知变化呢?必须在Spring容器中做文章,所以要想添加热部署,就必须在Spring容器中设置。
那我们得先有启动热部署的工具叭
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
在上面的工具栏Build中发现
总结:
启动开发者工具:引入坐标
激活热部署:Ctrl + F9
- 关于热部署
- 重启(Restart):自定义开发代码,包含类,页面,配置文件等,加载位置restart类加载器
- 重载(Reload):jar包,加载位置base类加载器
注意:热部署不需要把jar包也加载一次,热部署仅仅是restart的过程,不包含Reload,第一次启动两个阶段都有。意思就算热部署仅仅加载当前开发这者自定义开发的资源,不加载jar资源
但是你想还是要点啊?还有没有再智能一点呢?
能不能自动build project?
2.自动启动热部署
ctrl+alt+shift + /
打开这个Registry
21版的idea 这样操作
22版的这个automake在setting-advanced, setting里
激活方式: 5秒以后会自动构建
代码一动就会马上热部署
有些东西可以参加热部署,有些不参加热部署?
什么原因?
改动 application.yml 是会激活的
在哪里改热部署的配置呢?
热部署是devtool带给我们的功能,而它有属于springboot,如果想做这方面的设置,那肯定是springboot的设置,进入配置文件修改即可
自定义不参与重启排除项
devtools:
restart:
exclude:
static/**,templates/**,public/**,config/application.yml
热部署只在开发环境有用,上线就不需要了
如何关闭热部署?
4.禁用热部署
可以直接在yml中配置一个enable : false
就可以了 但是你在这里关了其实别的地方也可以开起来的,这里我们需要复习一个知识:
我们当前级别是3,我们找一个更高级别的配置
@SpringBootApplication
public class SSMPApplication {
public static void main(String[] args) {
System.setProperty("spring.devtools.restart.enabled","false");
SpringApplication.run(SSMPApplication.class, args);
}
}