springboot中thymeleaf 配置多个路径实现测试过程

测试环境:win10.JDK 1.8

 

需求背景:springboot 配合 thymeleaf 自己开发一个小站点。

例如其它路由/xxx/yyyy.html   打包后 正常访问 jar包体内classpath:/templates/ 下模板,并开启cache 以加快访问速度;

此时新增一个功能:例如 路由/outtemplate/zzzz.html 去jar包运行路径下指定目录提取模板 且不开启cache 方便发布后实时更新,且在java中处理一些通用逻辑。(如果无逻辑处理:可以外部创建static供 springboot自动扫描,html作为静态文件访问)

 

主要测试类:

ClassLoaderTemplateResolver  ||    SpringResourceTemplateResolver

创建任意类 使用
@Configuration 标签。我图方便放在了之前写的一个类内部
ClassLoaderTemplateResolver  测试:
访问测试路由:
  http://localhost:8081/class/test ;测试写死模板:classGet.html

    classGet.html所在目录:

 

  编写ClassLoaderTemplateResolver  Bean 将classes 下的test目录设置为该解析器根目录

结果访问 成功;

但是这个还不符合需求,我需要用到外部目录 则使用 SpringResourceTemplateResolver

 

 

 

 

SpringResourceTemplateResolver 成功扫到模板,并正常访问

总结:初步理解两个类的简单用法。如果有不对希望大家指正

疑问:是否有方式 假设Controller编写访问路由时,设置该路由使用的解析器。假设项目多个解析器order排序处理。根目录下文件有同名 出现同名导致获取模板错误。
或者前面N个路由都没扫描的模板文件最后一个扫描到是否会
降低扫描效率(在不开启cache的条件每次获取模板应该都会扫描文件,这种理解是否错误呢)。


 

posted @ 2022-03-28 14:13  只猿身在此山中  阅读(776)  评论(0编辑  收藏  举报