欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

怎么控制springboot中bean的加載順序-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買(mǎi)多久送多久,劃算不套路!

成都創(chuàng)新互聯(lián)致力于互聯(lián)網(wǎng)網(wǎng)站建設(shè)與網(wǎng)站營(yíng)銷(xiāo),提供成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、網(wǎng)站開(kāi)發(fā)、seo優(yōu)化、網(wǎng)站排名、互聯(lián)網(wǎng)營(yíng)銷(xiāo)、小程序制作、公眾號(hào)商城、等建站開(kāi)發(fā),成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)策劃專(zhuān)家,為不同類(lèi)型的客戶(hù)提供良好的互聯(lián)網(wǎng)應(yīng)用定制解決方案,幫助客戶(hù)在新的全球化互聯(lián)網(wǎng)環(huán)境中保持優(yōu)勢(shì)。

小編這次要給大家分享的是怎么控制springboot中bean的加載順序,文章內(nèi)容豐富,感興趣的小伙伴可以來(lái)了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

1.為什么需要控制加載順序

springboot遵從約定大于配置的原則,極大程度的解決了配置繁瑣的問(wèn)題。在此基礎(chǔ)上,又提供了spi機(jī)制,用spring.factories可以完成一個(gè)小組件的自動(dòng)裝配功能。

在一般業(yè)務(wù)場(chǎng)景,可能你不大關(guān)心一個(gè)bean是如何被注冊(cè)進(jìn)spring容器的。只需要把需要注冊(cè)進(jìn)容器的bean聲明為@Component即可,spring會(huì)自動(dòng)掃描到這個(gè)Bean完成初始化并加載到spring上下文容器。

而當(dāng)你在項(xiàng)目啟動(dòng)時(shí)需要提前做一個(gè)業(yè)務(wù)的初始化工作時(shí),或者你正在開(kāi)發(fā)某個(gè)中間件需要完成自動(dòng)裝配時(shí)。你會(huì)聲明自己的Configuration類(lèi),但是可能你面對(duì)的是好幾個(gè)有互相依賴(lài)的Bean。如果不加以控制,這時(shí)候可能會(huì)報(bào)找不到依賴(lài)的錯(cuò)誤。

但是你明明已經(jīng)把相關(guān)的Bean都注冊(cè)進(jìn)spring上下文了呀。這時(shí)候你需要通過(guò)一些手段來(lái)控制springboot中的bean加載順序。

2.幾個(gè)誤區(qū)

在正式說(shuō)如何控制加載順序之前,先說(shuō)2個(gè)誤區(qū)。

在標(biāo)注了@Configuration的類(lèi)中,寫(xiě)在前面的@Bean一定會(huì)被先注冊(cè)

這個(gè)不存在的,spring在以前xml的時(shí)代,也不存在寫(xiě)在前面一定會(huì)被先加載的邏輯。因?yàn)閤ml不是漸進(jìn)的加載,而是全部parse好,再進(jìn)行依賴(lài)分析和注冊(cè)。到了springboot中,只是省去了xml被parse成spring內(nèi)部對(duì)象的這一過(guò)程,但是加載方式并沒(méi)有大的改變。

利用@Order這個(gè)標(biāo)注能進(jìn)行加載順序的控制

嚴(yán)格的說(shuō),不是所有的Bean都可以通過(guò)@Order這個(gè)標(biāo)注進(jìn)行順序的控制。你把@Order這個(gè)標(biāo)注加在普通的方法上或者類(lèi)上一點(diǎn)鳥(niǎo)用都沒(méi)有。

@Order能控制哪些bean的加載順序呢,我們先看看官方的解釋?zhuān)?/p>

{@code @Order} defines the sort order for an annotated component. Since Spring 4.0, annotation-based ordering is supported for many kinds of components in Spring, even for collection injection where the order values of the target components are taken into account (either from their target class or from their {@code @Bean} method). While such order values may influence priorities at injection points, please be aware that they do not influence singleton startup order which is an orthogonal concern determined by dependency relationships and {@code @DependsOn} declarations (influencing a runtime-determined dependency graph).

最開(kāi)始@Order注解用于切面的優(yōu)先級(jí)指定;在 4.0 之后對(duì)它的功能進(jìn)行了增強(qiáng),支持集合的注入時(shí),指定集合中 bean 的順序,并且特別指出了,它對(duì)于但實(shí)例的 bean 之間的順序,沒(méi)有任何影響。

目前用的比較多的有以下3點(diǎn):

@Aspect
ApplicationListener
CommandLineRunner

3.如何控制

3.1@DependsOn

@DependsOn注解可以用來(lái)控制bean的創(chuàng)建順序,該注解用于聲明當(dāng)前bean依賴(lài)于另外一個(gè)bean。所依賴(lài)的bean會(huì)被容器確保在當(dāng)前bean實(shí)例化之前被實(shí)例化。

示例:

@Configuration
public class BeanOrderConfiguration {

 @Bean
 @DependsOn("beanB")
 public BeanA beanA(){
  System.out.println("bean A init");
  return new BeanA();
 }

 @Bean
 public BeanB beanB(){
  System.out.println("bean B init");
  return new BeanB();
 }

 @Bean
 @DependsOn({"beanD","beanE"})
 public BeanC beanC(){
  System.out.println("bean C init");
  return new BeanC();
 }

 @Bean
 @DependsOn("beanE")
 public BeanD beanD(){
  System.out.println("bean D init");
  return new BeanD();
 }

 @Bean
 public BeanE beanE(){
  System.out.println("bean E init");
  return new BeanE();
 }
}

文章標(biāo)題:怎么控制springboot中bean的加載順序-創(chuàng)新互聯(lián)
新聞來(lái)源:http://aaarwkj.com/article4/isiie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)標(biāo)簽優(yōu)化、網(wǎng)站維護(hù)、網(wǎng)頁(yè)設(shè)計(jì)公司、手機(jī)網(wǎng)站建設(shè)、域名注冊(cè)

廣告

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

外貿(mào)網(wǎng)站建設(shè)
成人精品午夜福利视频| 欧美专区另类综合日韩| 日韩黄色免费在线观看| 欧美 日本国产一区| 久久综合亚洲鲁鲁五月天| 91精品国产综合久久男男| 人妻天天爽夜夜爽欧美色| 久久亚洲欧美国产精品观看| 国产极品美女视频福利| 四虎最新地址在线观看| 午夜在线观看视频免费| 未满18禁止观看在线| 日韩色图在线观看视频| 久久久精品免费中文视频| 国产高清在线不卡一区| 精品国产无遮挡污污网站| 亚洲欧美激情啪啪啪| 亚洲va在线va天堂va在线| 人妻中文字幕在线看粉嫩| 亚洲精品视频一区二区| 亚洲国产精品综合色在线| 免费久久人人爽人人爽| 日本成人大片在线观看| 日韩三级精品一区二区| 成人黄网站色大片免费| 日本成人午夜在线观看| 欧美亚洲av一区二区三区| 亚洲第一青青草原在线| 女人的天堂av免费在线观看| 国产成人精品一二三四区| 欧美私人影院—区二区日本| 久久综激情丁香开心婷婷| 久久热这里只有精品网站| 久久亚洲一本综合久久| 亚洲黄色av网站在线| 精品人妻少妇一区二区三区| 日本一区二区高清在线观看| 最新日韩中文字幕在线播放| 欧美黄片网站在线观看| 精品成人乱色一区二区| 国产精彩在线视频成人在线|