SpringBoot中配置freemarker忽略自動配置

問題出現(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é)

有問題不怕,要相信解決辦法總比問題多。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容