課件springboot系列之自定義啟動(dòng)器_第1頁
課件springboot系列之自定義啟動(dòng)器_第2頁
課件springboot系列之自定義啟動(dòng)器_第3頁
課件springboot系列之自定義啟動(dòng)器_第4頁
課件springboot系列之自定義啟動(dòng)器_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Java

微服務(wù)實(shí)戰(zhàn)系列課堂Java

微服務(wù)實(shí)戰(zhàn)系列課堂課堂資源https:

/n/1330000009887617課件資源

/mercyblitz/segmentfault-lessons/JSR資源

/mercyblitz/jsr議題Spring

Boot

Starter開發(fā)經(jīng)驗(yàn)Spring

Boot系列總結(jié)Spring

Cloud系列預(yù)告問答互動(dòng)SpringBoot

Starter說明Spring

Boot

Starter又稱作為Spring

Boot啟動(dòng)器,是

Spring

Boot框架中最

的組件,其中可能包含以下組件:自動(dòng)裝配模塊(Autoconfigure

Module)啟動(dòng)器模塊(Starter

Module)SpringBoot

Starter自動(dòng)裝配模塊(Autoconfigure

Module)自動(dòng)裝配模塊包含類庫中的每種必要啟動(dòng)單元,它可能也包含配置鍵的定義,也可能包含任意用于未來自定義已初始化組件的回調(diào)接口。舉例說明配置鍵的定義@ConfigurationProperties自定義已初始化組件的回調(diào)接口EmbeddedServletContainerCustomizerSpringBoot

Starter自動(dòng)裝配模塊(Autoconfigure

Module)自動(dòng)裝配類型自動(dòng)裝配Bean(Auto-Configuration

Beans)Spring配置(@Configuration)SpringBoot管理上下文配置(@ManagementContextConfiguration)Spring

Boot組件Failure

ysisReporterSpringApplicationRunListenerAutoConfigurationImportListenerSpringBoot

Starter自動(dòng)裝配模塊(Autoconfigure

Module)理解自動(dòng)裝配

Bean(Auto-Configuration

Beans)自動(dòng)裝配是由標(biāo)準(zhǔn)Spring

@Configuration實(shí)現(xiàn),結(jié)合Spring4的新特性條件判斷注解@Conditional以及其Spring

Boot派生注解,如:@ConditionalOnClass等。放置自動(dòng)裝配

Bean(META-INF/spring.factories)將標(biāo)記@Configuration的Spring

ConfigurationClass放置在相對(duì)于class-path下的META-INF/spring.factories文件中,如下所示:.springframework.boot.autoconfigure.EnableAutoConfiguration=\.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,\.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration,\SpringBoot

Starter自動(dòng)裝配模塊(Autoconfigure

Module)前置條件

(@Conditional)Bean裝配前的前置條件,基于Spring

4

@Conditional,判斷當(dāng)前Bean是否適合或者需要裝配。在Spring

Boot場(chǎng)景下,時(shí)常使用其派生注解。Spring

Boot派生前置條件注解類條件Bean條件配置屬性條件資源條件Web應(yīng)用條件Spring表達(dá)式條件SpringBoot

Starter自動(dòng)裝配模塊(Autoconfigure

Module)Spring

Boot派生前置條件注解類條件用于判斷指定的Class對(duì)象或者其全名稱存在與否存在判斷:@ConditionalOnClass缺失判斷:@ConditonalOnMissingClassBean條件用于判斷指定的Spring

Bean是否在指定的Spring應(yīng)用上下文中存在與否存在判斷:@ConditionalOnBean缺失判斷:@ConditonalOnMissingBeanSpringBoot

Starter自動(dòng)裝配模塊(Autoconfigure

Module)Spring

Boot派生前置條件注解配置屬性條件用于判斷指定的配置屬性存在與否、默認(rèn)是否匹配等@ConditionalOnProperty資源條件用于判斷指定的資源是否存在@ConditionalOnResource參考Spring章節(jié):ResourcesSpringBoot

Starter自動(dòng)裝配模塊(Autoconfigure

Module)Spring

Boot派生前置條件注解Web應(yīng)用條件用于判斷當(dāng)前Spring

Boot應(yīng)用是否為Web應(yīng)用@ConditionalOnWebApplicationSpring表達(dá)式條件用于Spring表達(dá)式評(píng)估結(jié)果是否成立@ConditionalOnExpression參考Spring章節(jié):Spring

Expression

Language(SpEL)SpringBoot

Starter自動(dòng)裝配模塊(Autoconfigure

Module)自動(dòng)裝配順序在特定自動(dòng)裝配Class之前@AutoConfigureBefore在特定自動(dòng)裝配Class之后@AutoConfigureAfter指定順序@AutoConfigureOrderSpringBoot

Starter啟動(dòng)器模塊(Starter

Module)啟動(dòng)器模塊是一個(gè)空

JAR文件,僅提供輔助性依賴管理,這些依賴可能用于自動(dòng)裝配或者其他類庫特別注意如果自動(dòng)裝配的類庫需要其他啟動(dòng)器(starters),管理依賴時(shí),需要將它們一并引入,最好不用使用單一啟動(dòng)器來間接依賴。提供一種合適依賴管理集合可能非常,如果其中類庫存在非必須依賴時(shí)舉例說明Spring

Boot啟動(dòng)模塊:spring-boot-starter:${version}SpringBoot

Starter命名Spring

Boot

Starter

名稱也稱之為

Spring

Boot

命名空間,通常用于Maven

artifactId,并且能夠傳達(dá)starter模塊的功能職責(zé)。Starter命名空間可簡(jiǎn)單地分類為:“

命名空間”和“自定義命名空間”??蚣軐用妫琒pring

Boot

Starter薦規(guī)約的形式。名并未做強(qiáng)制的約束,而是采用推SpringBoot

Starter命名規(guī)約命名空間前綴:“spring-boot-starter-”模式:spring-boot-starter-{}舉例:spring-boot-starter-web、spring-boot-starter-actuator、spring-boot-starter-jdbc自定義命名空間(非

)后綴:“-spring-boot-starter”模式:{}-spring-boot-starter舉例:acme-spring-boot-starterSpringBoot

StarterDEMO開發(fā)經(jīng)驗(yàn)命名經(jīng)驗(yàn)啟動(dòng)器名稱一般由組件名+“-spring-boot-starter”后綴組件名使用名詞比如,payment啟動(dòng)器名稱盡可能言簡(jiǎn)意賅正例:payment-spring-boot-starter啟動(dòng)器名稱盡可能避免歧義或者模糊反例:shop

-spring-boot-starter啟動(dòng)器名稱盡可能避免與反例:spring-boot-starter-web或web-spring-boot-starter開發(fā)經(jīng)驗(yàn)自動(dòng)裝配實(shí)現(xiàn)經(jīng)驗(yàn)自動(dòng)裝配實(shí)現(xiàn)類名以“AutoConfiguration”為后綴正例:PaymentAutoConfiguration反例:PaymentConfig組合前置條件盡可能地嚴(yán)謹(jǐn)(多條件)例如SpringBoot

Web

MVC應(yīng)用的判斷正例:@ConditionalOnWebApplication@ConditionalOnClass(Servlet.class)@ConditionalOnClass(DispatcherServlet.class)反例:@ConditionalOnWebApplication開發(fā)經(jīng)驗(yàn)自動(dòng)裝配實(shí)現(xiàn)經(jīng)驗(yàn)組合前置條件判斷成本由低到高(多條件)假設(shè)當(dāng)@ConditionalOnClass和@ConditionalOnBean同時(shí)存在時(shí),@ConditionalOnClass的判斷成本較低,因此放置的位置優(yōu)先。例如:@ConditionalOnClass(Car.class)@ConditionalOnBean(JpaRepository.class)public

class

VehicleAutoConfiguration

{}自動(dòng)裝配Class組件依賴與順序盡可能明確@ConfiguraionPropertiesClass

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論