Как SpringBoot devtools обнаруживает работающую среду приложения? - PullRequest
0 голосов
/ 08 января 2019

В моем приложении я добавляю devBoot SpringBoot для повышения скорости разработки.

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

В своем официальном документе написано

Инструменты разработчика автоматически отключаются при запуске полностью упакованного приложения. Если ваше приложение запускается из java -jar или из специального загрузчика классов, оно считается «производственным приложением».

Приложение запускается из java -jar в Production. Но как это происходит в идее Intellij в процессе разработки?

1 Ответ

0 голосов
/ 08 января 2019

Это на самом деле довольно просто, но не очевидно. Если в classpath включен spring-boot-devtools, значит devtools включен.

По умолчанию spring-boot-maven-plugin исключает spring-boot-devtools при сборке окончательного файла JAR, поэтому он отключен.

Плагин весенней загрузки Maven docs :

Devtools автоматически исключается по умолчанию (вы можете контролировать используя свойство excludeDevtools). Чтобы заставить это работать с Военная упаковка, зависимость spring-boot-devtools должна быть установлена ​​как необязательно или с предоставленной областью применения.

Если вы запускаете приложение spring из IDE или запускаете mvn spring-boot:run spring-boot-devtools находится в вашем classpath.

Когда работает spring-boot-devtools, вы получите журнал, подобный следующему:

.e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
...