問題出現(xiàn)
在開發(fā)項目過程中驼鞭,今天在啟動一個SpringBoot項目時终议,發(fā)現(xiàn)SpringBoot項目啟動后,在控制臺看到這樣一個警告告警:
2022-09-30 14:30:32.956 [main] WARN o.s.b.a.freemarker.FreeMarkerAutoConfiguration:65 - Cannot find template location(s): [classpath:/templates] (please add some templates, check your FreeMarker configuration, or set spring.freemarker.checkTemplateLocation=false)
針對于[main] WARN這種告警穴张,其實你可以忽略不必管它。但你如果不想看到它皂甘,想知道什么原因的話。其實這個提示還是比較明確的悼凑。
問題思考
首先看下這個告警出現(xiàn)的原因偿枕,追尋這個告警户辫,可以大體來猜測下這個類所出現(xiàn)的路徑——o.s.b.a (最笨的方法就是去依賴庫每個包看下)根據(jù)這個我們其實是大題上可以猜測出來是這個類所指:org.springframework.boot.autoconfigure.freemarker
其實就是每個包的包名稱首字母的縮寫,找到這里墓塌,再來看下這里是哪一個文件freemarker.FreeMarkerAutoConfiguration:65 看到這里,是不是心里有了明鏡访诱?在freemarker文件夾下面的FreeMarkerAutoConfiguration.java類中的第65行韩肝。追尋這個意思,我們可以循著他看到我下面的圖涡相。
再來看看這個警告出現(xiàn)的意思漾峡,在檢查FreeMarker模版時,在classpath:/templates找不到本地模版位置生逸,請?zhí)砑铀蛘咴O置spring.freemarker.checkTemplateLocation=false 槽袄,(白話其實就是不檢查)锋谐,當我知道問題出現(xiàn)的位置以及問題出現(xiàn)的原因時,那么我們就開始手動解決他吧乾戏。
解決方法
方法一
1鼓择、在項目的 /src/main/resources/templates 目錄下添加一個模板文件就漾,比如xxx.jsp 或 xxx.ftl 的模版文件(其實,第1步可以不用做摆出,可以直接使用2步驟來處理首妖,我個人也比較推薦使用第二種方式)。
方法二
2象踊、打開項目配置文件 application.properties(或者有的是application.yml、bootstrap.yml),有的人可能喜歡使用 .yml 或者.yaml格式的灌曙。
在配置文件中,增加如下配置:
spring.freemarker.checkTemplateLocation=false
或者
spring:
application:
name: xxx
cloud:
nacos:
config:
server-addr: xxx
discovery:
server-addr: xxx
# 在Spring的配置項下面配置檢查本地模版文件為false即可
freemarker:
checkTemplateLocation: false
如果需要配置FreeMarker模版作為模版引擎逆害,我們可以按照下面的方式來處理蚣驼。除了FreeMarker模版引擎颖杏,其實我們也還可以使用thymeleaf模版引擎,這里不再贅述留储。
spring:
freemarker:
# req訪問request
request-context-attribute: req
# 后綴名
suffix: .html
content-type: text/html
enabled: true
# 緩存配置
cache: false
# 模板加載路徑 按需配置(這里就是我們上面的忽略配置)
template-loader-path: classpath:/templates/
# 編碼格式
charset: UTF-8
settings:
# 數(shù)字格式化获讳,無小數(shù)點
number_format: '0.##'
方法三
3、第三種方式就是在我們的啟動入口配置量愧,此時我們只想用freemarker來渲染處理xml文件偎肃,但是不想使用它作為模板引擎损晤,這時需要關掉freemarker 的自動裝配。
@SpringBootApplication(exclude = {FreeMarkerAutoConfiguration.class})
方法四
4喘落、這第四種方式最冰,也是比較簡單的,一勞永逸暖哨,那就是關閉這種告警,眼不見心不煩赡若,針對有潔癖的可以使用這種方式团甲。這種方式就是關閉告警。
Mac模式下:InteIIiJ IDEA ==> Preferences... ==>Editor ==> Inspections ==>
或者快捷方式:command(?)+ ,
配置Spring身腻、SpringBoot匹厘、SpringCloud等錯誤、告警信息
配置FreeMarker等錯誤她按、告警信息
總結
有問題不怕炕柔,要相信解決辦法總比問題多。