
問題出現(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(shè)置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文件,但是不想使用它作為模板引擎,這時需要關(guān)掉freemarker 的自動裝配。
@SpringBootApplication(exclude = {FreeMarkerAutoConfiguration.class})
方法四
4、這第四種方式,也是比較簡單的,一勞永逸,那就是關(guān)閉這種告警,眼不見心不煩,針對有潔癖的可以使用這種方式。這種方式就是關(guān)閉告警。
Mac模式下:InteIIiJ IDEA ==> Preferences... ==>Editor ==> Inspections ==>
或者快捷方式:command(?)+ ,

配置Spring、SpringBoot、SpringCloud等錯誤、告警信息

配置FreeMarker等錯誤、告警信息

總結(jié)
有問題不怕,要相信解決辦法總比問題多。