Spring Boot devtools如何检测应用运行环境?
How does SpringBoot devtools detect application's running environment?
在我的应用中,我添加了SpringBoot devtools来提高开发速度。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
在其 official document 中说
Developer tools are automatically disabled when running a fully packaged application. If your application is launched from java -jar or if it is started from a special classloader, then it is considered a “production application”.
该应用程序从生产中的 java -jar 启动。但是它在开发过程中是如何在 Intellij IDEA 中启动的呢?
其实很简单,但不明显。当 spring-boot-devtools 包含在类路径中时,将启用 devtools。
默认情况下,spring-boot-maven-plugin 在构建最终的 jar 文件时排除 spring-boot-devtools,因此它被禁用。
Spring Boot Maven Plugin docs:
Devtools is automatically excluded by default (you can control that
using the excludeDevtools property). In order to make that work with
war packaging, the spring-boot-devtools
dependency must be set as
optional or with the provided scope.
如果您 运行 您的 spring 应用程序来自您的 IDE 或 运行 mvn spring-boot:run
spring-boot-devtools 在您的类路径中.
当 spring-boot-devtools 为 运行ning 时,您将获得类似这样的日志:
.e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
在我的应用中,我添加了SpringBoot devtools来提高开发速度。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
在其 official document 中说
Developer tools are automatically disabled when running a fully packaged application. If your application is launched from java -jar or if it is started from a special classloader, then it is considered a “production application”.
该应用程序从生产中的 java -jar 启动。但是它在开发过程中是如何在 Intellij IDEA 中启动的呢?
其实很简单,但不明显。当 spring-boot-devtools 包含在类路径中时,将启用 devtools。
默认情况下,spring-boot-maven-plugin 在构建最终的 jar 文件时排除 spring-boot-devtools,因此它被禁用。
Spring Boot Maven Plugin docs:
Devtools is automatically excluded by default (you can control that using the excludeDevtools property). In order to make that work with war packaging, the
spring-boot-devtools
dependency must be set as optional or with the provided scope.
如果您 运行 您的 spring 应用程序来自您的 IDE 或 运行 mvn spring-boot:run
spring-boot-devtools 在您的类路径中.
当 spring-boot-devtools 为 运行ning 时,您将获得类似这样的日志:
.e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable