您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Spring Boot和Thymeleaf-再次热插拔模板和资源

Spring Boot和Thymeleaf-再次热插拔模板和资源

我花了一些时间,最后在这里我将解释如何使它工作。到处搜寻您可能会发现一些资讯:

我的初始方法是禁用缓存并添加Spring开发工具:

spring靴 application.properties

spring.thymeleaf.cache=false
spring.thymeleaf.mode=LEGACYHTML5
spring.thymeleaf.prefix=/templates/

pom.xml

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

但是,仅使用上面的代码片段是不够的,因为仅在创建项目时才执行热交换(Intellij Idea中的CTRL + F9)。这是因为 ,这就是需要重新编译的原因。

defaultTemplateResolver使用基于文件系统的解析器来覆盖:

application.properties

spring.thymeleaf.cache=false
spring.thymeleaf.mode=LEGACYHTML5
spring.thymeleaf.templates_root=src/main/resources/templates/

应用类别

@SpringBootApplication
public class MyApplication {

    @Autowired
    private ThymeleafProperties properties;

    @Value("${spring.thymeleaf.templates_root:}")
    private String templatesRoot;

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }

    @Bean
    public ITemplateResolver defaultTemplateResolver() {
        FileTemplateResolver resolver = new FileTemplateResolver();
        resolver.setSuffix(properties.getSuffix());
        resolver.setPrefix(templatesRoot);
        resolver.setTemplateMode(properties.getMode());
        resolver.setCacheable(properties.isCache());
        return resolver;
    }
}

我发现此解决方案是最佳的,因为它可以让您外部化配置并使用不同的配置文件(dev,prod等),同时可以通过 来重新加载更改

Java 2022/1/1 18:13:35 有868人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶