版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 腳手架搭設(shè)專項(xiàng)施工方案
- 個(gè)人小額無抵押借款合同協(xié)議書
- 結(jié)束協(xié)議房地產(chǎn)代理合同
- 蔬菜營(yíng)銷策略購買合同
- 瓷磚訂購合同模板
- 電子元件采購合同范本
- 購銷紡織品的合同樣本
- 校園多媒體設(shè)備招標(biāo)文件
- 網(wǎng)絡(luò)購銷合同規(guī)范化管理的方法與策略
- 農(nóng)資采購合同的效力問題
- 高校人力資源管理系統(tǒng)
- 03船舶證書一覽表
- 國外發(fā)達(dá)國家中水回用現(xiàn)狀
- 墻體構(gòu)造設(shè)計(jì)
- 成人哮喘生命質(zhì)量評(píng)分表
- 相親相愛一家人簡(jiǎn)譜
- 數(shù)字油畫-社團(tuán)活動(dòng)記錄課件
- 燃?xì)饧t外線輻射采暖技術(shù)交底
- 液壓系統(tǒng)課件(完整)課件
- 驗(yàn)收合格證明(共9頁)
- 蘇強(qiáng)格命名規(guī)則
評(píng)論
0/150
提交評(píng)論