Spring引导:在不重新启动服务器的情况下发布Eleaf模板

Spring引导:在不重新启动服务器的情况下发布Eleaf模板,spring,spring-boot,thymeleaf,Spring,Spring Boot,Thymeleaf,有没有一种方法可以在不运行和构建war文件的情况下发布Thymeleaf模板? 这就是我的gradle文件的外观: apply plugin: 'war' war { baseName = 'bootBlog' version = '0.1.0' } repositories { mavenLocal() mavenCentral() maven { url "https://repo.spring.io/libs-release" } } co

有没有一种方法可以在不运行和构建war文件的情况下发布Thymeleaf模板?
这就是我的gradle文件的外观:

apply plugin: 'war'

war {
    baseName = 'bootBlog'
    version =  '0.1.0'
}


repositories {
    mavenLocal()
    mavenCentral()
    maven { url "https://repo.spring.io/libs-release" }
}

configurations {
    providedRuntime
}

dependencies {
    compile("org.springframework.boot:spring-boot-starter-thymeleaf")
    compile("org.springframework.boot:spring-boot-starter-data-mongodb")
    compile("org.springframework.boot:spring-boot-starter-actuator")
    testCompile("junit:junit")
    providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")

thymeleaf的工作方式是在服务器启动时缓存所有thymeleaf模板。这就是您无法获取最新模板的原因。要停止缓存,application.properties中有一个名为:

 spring.thymeleaf.cache=false
关闭此选项可防止缓存,并允许在不重新启动服务器的情况下刷新模板


输入配置后,停止服务器并使用
gradle bootRun
启动它。从现在起,您无需刷新即可获得最新的thymeleaf模板。

如果您仍然想使用Springboot而不是Gradle,您可以在属性文件中再添加两个属性:

  • project.base-dir(它不是已知的springboot属性,请将其视为 变量来定义项目的路径)
  • spring.thymeleaf.prefix
要进行汇总,属性文件应包含以下属性:

  • project.base-dir=file:///path/to/your/project/base/dir

  • spring.thymeleaf.prefix=${project.base dir}/src/main/resources/templates/

  • spring.thymeleaf.cache=false


您想在生产环境还是开发环境中执行此操作?我认为解决方案不会在gradle中实现,而是在开发环境中实现。正在寻找特定于gradle的解决方案。这是否意味着我需要创建application.properties文件并设置此值?是的。application.properties必须位于jar的根目录下,这对我来说不起作用:这节省了我很多时间。