摘要
Spring Boot DevTools 是专为开发者设计的辅助工具模块,它旨在提升开发效率,加速应用的开发与部署流程。本文基于Spring官方文档中关于DevTools的指导,旨在为广大学习者和开发者提供一个实用的参考资料。
devtools 启用
要启用 Spring Boot devtools 的功能,只需在项目的依赖中加入 spring-boot-devtools 即可。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
-
其中<optional>true</optional> 可以使该依赖只适用于开发环境,在打包引入依赖时不会添加此依赖。
-
运行完整打包的应用程序时,开发人员工具会自动禁用。如果您的应用程序是从
java -jar
特殊类加载器启动的,则它被视为“生产应用程序”。您可以使用spring.devtools.restart.enabled
系统属性控制此行为。-
要启用 devtools(无论用于启动应用程序的类加载器是什么),请设置
-Dspring.devtools.restart.enabled=true
系统属性。在运行 devtools 存在安全风险的生产环境中,不得执行此操作。 -
要禁用 devtools,请排除依赖项或设置
-Dspring.devtools.restart.enabled=false
系统属性。
-
属性默认值设置
Spring Boot 支持的多个库都使用缓存来提高性能。例如,模板引擎会缓存已编译的模板,以避免重复解析模板文件。此外,Spring MVC 可以在提供静态资源时向响应添加 HTTP 缓存标头。虽然缓存在生产环境中非常有用,但在开发过程中可能会适得其反,导致您无法看到刚刚在应用程序中所做的更改。
因此spring-boot-devtools 默认禁用一系列模块的缓存选项。以下是官网提供的devTools 属性默认值参数列表以及补充说明:
属性 | 默认值 | 说明 |
---|---|---|
|
|
控制是否在服务器错误响应中包含数据绑定错误。 |
|
|
控制是否在服务器错误响应中包含异常的具体消息。 |
|
|
控制是否在服务器错误响应中包含异常的堆栈跟踪信息。 |
|
|
控制JSPServlet的初始化参数,设置为true表示启用开发模式,会影响JSP页面的编译和重新加载行为。 |