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的條件每次獲取模板應該都會掃描文件,這種理解是否錯誤呢)。


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM