Springboot自动重启

为了不用每次修改代码之后都重启springboot,所以找了下自动重启springboot的方式。

Springboot提供了一个开发者工具:devtools

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

注:springboot版本应在1.3以上。

如果你是.gradle文件,则添加一下代码:

compile "org.springframework.boot:spring-boot-devtools"

当应用程序以完整打包好的JAR或WAR文件形式运行时,开发者工具会被禁用,所以没有必要在构建生产部署包前移除这个依赖。

IntelliJ IDEA工具

当你使用的是IntelliJ IDEA工具开发时,则需要修改一些配置。

依次执行以下操作:

  1. 打开Setting
  2. 选择Compiler
  3. 勾选Build project automatically
  4. 再执行ctrl+shift+alt+/ 打开Maintance,选择Registry
  5. 勾选compiler.automake.allow.when.app.running

重启编辑器可能会好点。


配置

以下内容来自《Springboot实战》。

排除检测目录

有些Classpath里的资源变更后不需要重启应用程序。像Thymeleaf这样的视图模板可以直接编辑,不用重启应用程序。在/static或/public里的静态资源也不用重启应用程序,所以Spring Boot开发者工具会在重启时排除掉如下目录:/META-INF/resources、/resources、/static、/public和/templates。

为了方便考虑,可以自定义排除目录

devtools: 
    restart: 
        exclude: /static/**,/templates/**

后续添加用逗号分隔即可

关闭自动重启

spring: 
    devtools: 
        restart: 
            enabled: false

设置触发文件

还可以设置一个触发文件,必须修改这个文件才能触发重启。例如,在修改名为.trigger的文件前你都不希望执行重启。

spring: 
    devtools: 
        restart: 
            trigger-file: .trigger

注:文件名后缀需要为 .trigger

例如:

spring boot重复加载 springboot无限重启_spring

spring boot重复加载 springboot无限重启_java_02

spring boot重复加载 springboot无限重启_java_03

若需要重启,在restart.trigger中随意修改即可。