DevTools 会使用两个类加载器(一个用于加载不变的类,一个用于加载可能会变化的类),每次重启只重新加载管理变化的类的加载器,因此会快很多
1.导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
<version>3.0.2</version>
</dependency>
- optional 属性表示这个依赖是可选的,设置为 true 意味着其他项目在作为依赖时不会自动传递它。
-
scope 决定了依赖在项目生命周期中的使用范围,runtime 表示该依赖在编译时不会被包含,但在运行时需要加载。这意味着 spring-boot-devtools 只在应用运行时生效,并且不被打包进最终的生产构建
2.allow auto-make
3. compiler 中开启自动构件项目
4.补充知识
Spring Boot DevTools 通过使用 两个类加载器 来加速应用的重启过程:
-
Base 类加载器(用于加载不变的类):
- 这个类加载器加载的是那些不会频繁变化的类(例如第三方库的依赖、Spring 框架本身的类等)。
- 这些类在应用启动时只加载一次,之后不再重新加载。
-
Restart 类加载器(用于加载可能会变化的类):
- 这个类加载器负责加载你自己的项目代码,即那些可能会发生变化的类。
- 当你修改代码并保存时,
DevTools
只会销毁并重新加载Restart 类加载器
,而Base 类加载器
中已经加载的类会被保留,这样无需重新加载整个应用的所有类。