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的条件每次获取模板应该都会扫描文件,这种理解是否错误呢)。