SpringBoot實(shí)戰(zhàn)教程之自動(dòng)配置詳解-創(chuàng)新互聯(lián)

前言

創(chuàng)新互聯(lián)為客戶提供專業(yè)的成都網(wǎng)站制作、網(wǎng)站建設(shè)、程序、域名、空間一條龍服務(wù),提供基于WEB的系統(tǒng)開發(fā). 服務(wù)項(xiàng)目涵蓋了網(wǎng)頁設(shè)計(jì)、網(wǎng)站程序開發(fā)、WEB系統(tǒng)開發(fā)、微信二次開發(fā)、手機(jī)網(wǎng)站制作等網(wǎng)站方面業(yè)務(wù)。

大家應(yīng)該都有所了解,隨著Ruby、Groovy等動(dòng)態(tài)語言的流行,相比較之下Java的開發(fā)顯得格外笨重。繁多的配置、低下的開發(fā)效率、復(fù)雜的部署流程以及第三方技術(shù)集成難度大等問題一直被人們所詬病。隨著Spring家族中的新星Spring Boot的誕生,這些問題都在逐漸被解決。

個(gè)人覺得Spring Boot中最重要的兩個(gè)優(yōu)勢(shì)就是可以使用starter簡(jiǎn)化依賴配置和Spring的自動(dòng)配置。下面這篇文章將給大家詳細(xì)介紹Spring Boot自動(dòng)配置的相關(guān)內(nèi)容,話不多說,來一起看看詳細(xì)的介紹。

使用starter簡(jiǎn)化依賴配置

Spring提供了一系列starter來簡(jiǎn)化Maven配置。其核心原理也就是Maven和Gradle的依賴傳遞方案。當(dāng)我們?cè)谖覀兊膒om文件中增加對(duì)某個(gè)starter的依賴時(shí),該starter的依賴也會(huì)自動(dòng)的傳遞性被依賴進(jìn)來。而且,很多starter也依賴了其他的starter。例如web starter就依賴了tomcat starter,并且大多數(shù)starter基本都依賴了spring-boot-starter。

Spring自動(dòng)配置

Spring Boot會(huì)根據(jù)類路徑中的jar包、類,為jar包里的類自動(dòng)配置,這樣可以極大的減少配置的數(shù)量。簡(jiǎn)單點(diǎn)說就是它會(huì)根據(jù)定義在classpath下的類,自動(dòng)的給你生成一些Bean,并加載到Spring的Context中。自動(dòng)配置充分的利用了spring 4.0的條件化配置特性,能夠自動(dòng)配置特定的Spring bean,用來啟動(dòng)某項(xiàng)特性。

條件化配置

假設(shè)你希望一個(gè)或多個(gè)bean只有在某種特殊的情況下才需要被創(chuàng)建,比如,一個(gè)應(yīng)用同時(shí)服務(wù)于中美用戶,要在中美部署,有的服務(wù)在美國集群中需要提供,在中國集群中就不需要提供。在Spring 4之前,要實(shí)現(xiàn)這種級(jí)別的條件化配置是比較復(fù)雜的,但是,Spring 4引入了一個(gè)新的@Conditional注解可以有效的解決這類問題。

@Bean
@Conditional(ChinaEnvironmentCondition.class)
public ServiceBean serviceBean(){
 return new ServiceBean();
}

新聞標(biāo)題:SpringBoot實(shí)戰(zhàn)教程之自動(dòng)配置詳解-創(chuàng)新互聯(lián)
URL標(biāo)題:http://www.muchs.cn/article38/djjgpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、動(dòng)態(tài)網(wǎng)站網(wǎng)站維護(hù)、定制網(wǎng)站、網(wǎng)站制作、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)