日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

springboot thymeleaf 引入jquery_超详细实战:SpringBoot高级之autoconfigure自动化配置

發布時間:2025/3/15 javascript 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springboot thymeleaf 引入jquery_超详细实战:SpringBoot高级之autoconfigure自动化配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本篇課程分為概念和實戰內容。代碼私信: 005獲取。

通讀全文大概需要五分鐘

不知道用過SpringBoot的同學,有沒有發現在SpringBoot的maven依賴中經常會有很多的starter之類的依賴,往往這些依賴的框架,在加入到pom之后,當應用啟動時候就會自動的被應用整合起來。比如昨天我們的thymeleaf教程中,SpringBoot在整合thymeleaf的時候,只是引入了spring-boot-starter-thymeleaf依賴就可以直接使用了,類似的還有很多。

比如: 自動整合freemarker

自動整合mybatis

現在不懂這些都沒關系,本節課小編就教大家如何使用自動化配置。

說到自動化配置這其實是SpringBoot的一個小特性。不知道有沒有同學仔細研究過SpringBootApplication這個注解主要有什么作用。其實自動化配置的秘密就隱藏在這里。

跟著小編來找一下秘密到底在哪里。

秘密就是: EnableAutoConfiguration

這個類的含義就是自動在依賴中找到自動化配置類。為了更簡單的給各位小伙伴說清楚。下面

小編舉一個例子thymeleaf。我們看下thymeleaf是如何實現自動化配置的吧。thymeleaf的自動化類就是這個:ThymeleafAutoConfiguration

前面我們說了SpringBoot的自動化配置的秘密是EnableAutoConfiguration.。那么我們看ThymeleafAutoConfiguration和EnableAutoConfiguration到底有什么關系呢?

謎底大解開

SpringBoot項目啟動類必須要被EnableAutoConfiguration標記,而之所以我們沒有看到是因為,SpringBootApplication已經被EnableAutoConfiguration標記了。

那么SpringBoot會在他依賴的所有包中去查找一個叫spring.factories的文件,ThymeleafAutoConfiguration和EnableAutoConfiguration的關系就在spring.factories里面聲明。我們打開

spring.factories文件發現EnableAutoConfiguration其實與很多的自動化配置做了綁定。當EnableAutoConfiguration被加載,其實與其綁定的這么多自動化配置都會選擇的進行啟動。

到這里我們就知道了為啥當引入了thymeleaf就會自動被整合到SpringBoot中了吧。如果只知道以上這些其實還是不夠的。下面小編提出一個問題。

請思考:

SpringBoot中自動化配置會自動整合ThymeleafAutoConfiguration但是假如我們不引入thymeleaf它的實現類,那么自動整合時候就會報中NoSuchClassException異常。SpringBoot是如何解決呢?

我們看ThymeleafAutoConfiguration是如何實現的。

答案就在這些注解上面。

  • @ConditionalOnClass : classpath中存在該類時起效
  • @ConditionalOnMissingClass : classpath中不存在該類時起效
  • @ConditionalOnBean : DI容器中存在該類型Bean時起效
  • @ConditionalOnMissingBean : DI容器中不存在該類型Bean時起效
  • @ConditionalOnSingleCandidate : DI容器中該類型Bean只有一個或@Primary的只有一個時起效
  • @ConditionalOnExpression : SpEL表達式結果為true時
  • @ConditionalOnProperty : 參數設置或者值一致時起效
  • @ConditionalOnResource : 指定的文件存在時起效
  • @ConditionalOnJndi : 指定的JNDI存在時起效
  • @ConditionalOnJava : 指定的Java版本存在時起效
  • @ConditionalOnWebApplication : Web應用環境下起效
  • @ConditionalOnNotWebApplication : 非Web應用環境下起效

SpringBoot如何來判斷是否啟動自動化配置,防止報錯呢? 就是通過上面的條件注解來實現。只要滿足條件的配置類,才會被整合進去。

實現一個自動化配置項目實戰?

我們以github上一個項目為例

使用方法.(和SpringCloud中Hystrix的使用方法類似,當getUserName出現報錯之后,就返回其指定的備用方法)

該項目可以自動化配置.

我們看他是如何實現自動化配置的吧。

Turnoff的配合類就下面這么簡單。

只用在META-INF目錄中創建一個spring.factories就可以實現。是不是很簡單。

到這里本篇內容就講完了,相信各位看官已經明白了吧。

獲取本課程代碼請關注頭條號: 軟件編程指南 ,私信: 005

更多了解可以點擊小編博客: https://blog.springlearn.cn/posts/4135/

總結

以上是生活随笔為你收集整理的springboot thymeleaf 引入jquery_超详细实战:SpringBoot高级之autoconfigure自动化配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。