SpringBoot devtools如何检测应用程序的运行环境?

时间:2019-01-08 02:55:30

标签: spring-boot spring-boot-devtools

在我的应用程序中,我添加了SpringBoot devtools以提高开发速度。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
</dependency>

在其official document中说

  

运行完全打包的应用程序时,将自动禁用开发人员工具。如果您的应用程序是从java -jar启动的,或者是从特殊的类加载器启动的,则将其视为“生产应用程序”。

该应用程序是从Production中的java -jar启动的。但是在开发过程中如何在Intellij理念中发挥作用?

1 个答案:

答案 0 :(得分:1)

实际上很简单,但并不明显。如果在类路径中包含spring-boot-devtools,则启用devtools。

默认情况下,在构建最终的jar文件时,spring-boot-maven-plugin会排除spring-boot-devtools,因此它被禁用。

Spring Boot Maven Plugin docs

  

Devtools默认情况下会自动排除(您可以控制   使用excludeDevtools属性)。为了使与   战争包装,必须将spring-boot-devtools依赖项设置为   可选或具有提供的范围。

如果您从IDE运行spring应用程序,或者在类路径中运行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