在我的应用程序中,我添加了 SpringBoot 开发工具以提高开发速度。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
在其官方文件中,它说
运行完全打包的应用程序时,开发人员工具会自动禁用。如果你的应用程序是从java -jar启动的,或者如果它是一个特殊的类加载器启动的,那么它被认为是一个"生产应用程序"。
该应用程序从生产中的java -jar启动。但是,在开发过程中,它是如何在 Intellij 理念中被抨击的呢?
这实际上很简单,但并不明显。当 spring-boot-devtools 包含在类路径中时,则启用 devtools。
默认情况下,spring-boot-maven-plugin 在构建最终的 jar 文件时会排除 spring-boot-devtools,因此它是禁用的。
Spring Boot Maven 插件文档:
默认情况下,Devtools 会自动排除(您可以控制 使用 excludeDevtools 属性)。为了使它工作 战争包装,
spring-boot-devtools
依赖必须设置为 可选或具有提供的范围。
如果从 IDE 运行 Spring 应用程序或运行 spring-boot-devtools mvn spring-boot:run
则 spring-boot-devtools 位于类路径中。
当 spring-boot-devtools 运行时,你会得到一个类似于这样的日志:
.e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable