关于Spring Boot devtools的自动重启功能
概述
如果在使用Spring Boot进行开发的应用程序中集成spring-boot-devtools,将会启用一些方便的功能来提升开发效率。以下是其中之一“自动重启”的设置的总结。
环境
-
- Windows10 Professional
-
- Java 1.8.0_101
-
- Spring Boot 1.4.1
spring-boot-devtools
请找个例子参考。
-
- 20. Developer tools
- Appendix A. Common application properties
财产默认值
与DevTools的初始设置有关的类。
-
- DevToolsPropertyDefaultsPostProcessor
-
- DevToolsProperties
- RemoteDevToolsProperties
自动重新启动
当将spring boot devtools添加进项目后,它将会生效。
默认情况下,当类路径上的文件发生变化时,应用程序将会重新启动。
激活/停用触发器
默认值为true。
spring:
devtools:
restart:
enabled: true
关于触发器的排除对象(默认)
默认值由DevToolsProperties定义。
符合此处定义的模式的文件不会触发重新启动。
spring:
devtools:
restart:
exclude: <DevToolsPropertiesを参照>
从触发对象中排除(添加)
默认情况下未指定。
如果您想要添加要排除重启触发的模式,请指定。
如果有多个模式,使用逗号分隔。
在此示例中,指定了*.yml、*.xml,因此即使修改了application.yml,应用程序也将不再重启。
spring:
devtools:
restart:
additional-exclude: "**/*.yml, **/*.xml"
将其纳入触发目标之中
默认值未定义。
在除类路径之外的文件中,指定要包含在重启触发器目标中的目录。
如果有多个目录,则在行首加上-并用数组指定。
spring:
devtools:
restart:
additional-paths:
- src/main/resources/sql
将触发器指定给特定的文件。
在Spring Boot devtools的默认状态下,即使只进行了小的修正,应用程序也会重新启动,可能会降低开发效率。在这种情况下,可以将重新启动的触发器从类路径上的文件更改为特定的文件。
默认未指定。
将重新启动的触发器指定为任意文件。在此示例中,指定了名为.reloadtrigger的文件。
将此文件放置在类路径上(src/main/resources),并且在希望重新启动时修改此文件,应用程序将重新启动。
spring:
devtools:
restart:
trigger-file: .reloadtrigger
请注意。
-
- クラスパス上のファイルの変更が無ければトリガーファイルを更新しても再起動しません。
-
- トリガーファイルはクラスパス上に配置します。クラスパス以外にある場合はadditional-pathsで追加します。
- トリガーファイルの変更はIDE上から行わないと検知されないようです。コンソールからファイルを更新しても再起動しませんでした。
全球设定
在中文的情况下,Spring Boot DevTools的设置信息可以通过应用程序的配置文件(application.properties或yml)进行记录。但有时候我们可能希望反映开发者个人的设置。
在这种情况下,可以在用户主目录下创建一个名为.spring-boot-devtools.properties的文件,来记录开发者个人的设置,并通过这个文件来实现反映。
例如
如果在application.properties文件中启用了重新启动功能,但在个人环境中想要禁用它的话
spring.devtools.restart.enabled = false
只需提供一个选项: 在application.properties中,虽然是类路径上的文件作为触发器,但如果想要使用任意文件作为触发器,则可以修改配置文件。
spring.devtools.reload.additional-paths = C:/path/to/directory
spring.devtools.reload.trigger-file = mytrigger
注意事项
- .spring-boot-devtools.ymlというyaml形式では認識されませんでした。