我通过Maven使用Spring Boot和Thymeleaf。当我进行更改时,我似乎无法让Netbeans自动重新部署我的任何Thymeleaf模板文件。为了查看更改,我需要进行完全清理/构建/运行。这需要太长时间。
模板位于src/main/resources/templates
。我在src / main / resources /中有一个application.properties文件,其中包含spring.thymeleaf.cache=false
和spring.template.cache=false
。
我在项目设置中打开了“保存时编译”,“保存时复制资源”和“保存时部署”
我的maven build会生成一个warbe文件,Netbeans会将其部署到Tomcat,我正在使用注释@EnableAutoConfiguration
。
Netbeans 对Java类进行热部署更改,但不对src / main / resources /中的任何静态文件进行热部署。>
正在使用的软件:
非常感谢任何指导。
答案 0 :(得分:4)
一个选项是研究配置Thymeleaf的FileTemplateResolver
要使用Spring Boot执行此操作,请定义一个实现名为ITemplateResolver
的{{1}}接口的bean,如果存在,Spring Boot将采用它而不是默认值,这是如何完成的,并假设您已激活组件扫描,因此将自动选择此配置类:
defaultTemplateResolver
@Configuration
public class ThymeleafConfiguration {
@Bean
public ITemplateResolver defaultTemplateResolver() {
TemplateResolver resolver = new FileTemplateResolver();
resolver.setSuffix(".html");
resolver.setPrefix("path/to/your/templates");
resolver.setTemplateMode("HTML5");
resolver.setCharacterEncoding("UTF-8");
resolver.setCacheable(false);
return resolver;
}
}
应该是一个相对路径,当添加到运行时工作目录(cwd)时,将解析为templates目录。如果您不确定,请将其设置为完整的绝对路径,但是上面的bean没有任何意义。由于将prefix
属性设置为绝对路径可能会产生相同的效果。
答案 1 :(得分:1)
一直在寻找我的eclipse + thymeleaf + sprint boot重新加载模板的解决方案,以便日志记录....
最后我在这里发现了这个问题,spring.thymeleaf.cache = false和spring.template.cache = false解决了我的问题。
答案 2 :(得分:1)
为了解决这个问题,pom.xml中的spring-boot-maven-plugin应该是这样的:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.0.RELEASE</version>
</dependency>
</dependencies>
</plugin>
并将其添加到您的应用程序属性中:
spring.thymeleaf.cache=false
它通常适用于Spring bean。
答案 3 :(得分:1)
除了通过ie将Thymeleaf视图设置为不可缓存之外。您的application.properties中的spring.thymeleaf.cache=false
,
尝试在pom.xml中明确定义资源目录:
<build>
...
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
...
</build>
答案 4 :(得分:0)
只是说这对我使用Tomcat的外部实例很有效:
http://wiki.netbeans.org/MavenBestPractices#Binding_Maven_goals_to_IDE_actions
https://github.com/spring-projects/spring-loaded
https://zeroturnaround.com/software/jrebel/quickstart/standalone/
或者您可以使用带有spring-boot-maven-plugin和Spring Loaded的嵌入式tomcat,然后您不需要编译操作:
https://docs.spring.io/spring-boot/docs/current/reference/html/howto-hotswapping.html
答案 5 :(得分:0)
我也有这个问题。我注意到Netbeans重新加载了
中的自动网页/ SRC /主/ web应用/
您必须将所有模板从/ src / main / resources / templates移动到此目录。
此外,您还必须更改application.properties文件中的spring boot属性:
spring.thymeleaf.prefix =模板/
这对我有用
答案 6 :(得分:0)
我在Netbeans 8.0.2和Windows上遇到过同样的问题。我正在构建一个部署到Tomcat的WAR,但我想尝试Spring Boot。看起来新版本的Netbeans可能会使用Spring Boot插件或使用Eclipse来解决这个问题。将IDE交换到像这样小的东西上似乎很麻烦。我尝试了所有我能找到的建议;弹簧加载,缓存属性,扩展TemplateResolver ...我无法让它们中的任何一个工作。我终于偶然发现了this博客,并按照这些说明解决了我的问题。