springboot AutoConfigureAfter控制Bean的注入順序方法詳解
這個(gè)文章主要介紹一下@AutoConfigureAfter在spring框架中的作用,在使用過(guò)程中,很多開(kāi)發(fā)人員在使用它的時(shí)候都出現(xiàn)了問(wèn)題,問(wèn)題比較多的就是它們的注冊(cè)順序總不是我們預(yù)期的,下面介紹一下正常的使用方法。
- @AutoConfigureAfter用在配置類(lèi)上面,即需要在@Configuration修飾的類(lèi)上,而不是@Component上面。
- 這些配置類(lèi),需要在spring.factories上面進(jìn)行注冊(cè)
- @AutoConfigureAfter影響的是配置類(lèi)中@Bean聲明的方法,而不是配置類(lèi)本身
代碼測(cè)試
祖父配置
@Configuration
@AutoConfigureBefore(Father.class) // 在我兒子Father之前,我GrandFather先初始化
public class GrandFather {
@Bean
public String grandFatherBean() {
System.out.println("配置類(lèi)GrandFatherConfig構(gòu)造器被執(zhí)行...");
return null;
}
}父親配置
@Configuration
public class Father {
@Bean
public String fatherTest() {
System.out.println("配置類(lèi)FatherConfig構(gòu)造器被執(zhí)行");
return "配置類(lèi)FatherConfig構(gòu)造器被執(zhí)行...";
}
}兒子配置
@Configuration
@AutoConfigureAfter(Father.class) // 在爸爸之初始化
public class Son {
@Bean
public String SonBean() {
System.out.println("配置類(lèi)SonConfig構(gòu)造器被執(zhí)行...");
return null;
}
}spring.factories配置相關(guān)
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.lind.common.bean.family.Father,\ com.lind.common.bean.family.GrandFather,\ com.lind.common.bean.family.Son
springboot啟動(dòng)后,可以看到截,這些bean在初始化時(shí),使用了正確的可預(yù)期的順序進(jìn)行注冊(cè)

到此這篇關(guān)于springboot AutoConfigureAfter如何控制Bean的注入順序的文章就介紹到這了,更多相關(guān)springboot Bean注入順序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot入坑筆記之spring-boot-starter-web 配置文件的使用
本篇向小伙伴介紹springboot配置文件的配置,已經(jīng)全局配置參數(shù)如何使用的。需要的朋友跟隨腳本之家小編一起學(xué)習(xí)吧2018-01-01
Spring Gateway處理微服務(wù)的路由轉(zhuǎn)發(fā)機(jī)制
我們?cè)敿?xì)地介紹了Spring Gateway,這個(gè)基于Spring 5、Spring Boot 2和Project Reactor的API網(wǎng)關(guān),通過(guò)這篇文章,我們可以清晰地看到Spring Gateway的工作原理,以及它的強(qiáng)大之處,感興趣的朋友一起看看吧2024-08-08
Springcloud中的@RefreshScope的實(shí)現(xiàn)
@RefreshScope注解是Spring Cloud中的一個(gè)注解,它用來(lái)實(shí)現(xiàn)Bean中屬性的動(dòng)態(tài)刷新,本文就來(lái)介紹一下@RefreshScope注解的使用,感興趣的可以了解一下2024-06-06
MyBatis-Plus使用sl4j日志打印SQL的代碼詳解
以下是關(guān)于使用 Spring Boot 起始器替換 slf4j-api 和 logback 依賴(lài)的詳細(xì)步驟和注意事項(xiàng),包括 MyBatis-Plus 的默認(rèn)日志級(jí)別信息,需要的朋友可以參考下2024-10-10
Java8之lambda最佳實(shí)踐_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
在8 里面Lambda是最火的主題,不僅僅是因?yàn)檎Z(yǔ)法的改變,更重要的是帶來(lái)了函數(shù)式編程的思想,我覺(jué)得優(yōu)秀的程序員,有必要學(xué)習(xí)一下函數(shù)式編程的思想以開(kāi)闊思路2017-06-06
解決IDEA修改 .vmoptions 文件后導(dǎo)致無(wú)法啟動(dòng)的問(wèn)題
這篇文章主要介紹了解決IDEA修改 .vmoptions 文件后導(dǎo)致無(wú)法啟動(dòng)的問(wèn)題,需要的朋友可以參考下2020-12-12
vue用CryptoJS加密,java用CryptoUtil解密
CryptoJS是一個(gè)JavaScript庫(kù),提供了一系列密碼學(xué)函數(shù)和工具,用于加密、解密、生成摘要等任務(wù),本文vue前端使用CryptoJS加密,java后端使用CryptoUtil解密2024-09-09
可能是全網(wǎng)最詳細(xì)的springboot整合minio教程
MinIO是全球領(lǐng)先的對(duì)象存儲(chǔ)先鋒,在標(biāo)準(zhǔn)硬件上,讀/寫(xiě)速度上高達(dá)183 GB/秒和171 GB/秒,下面這篇文章主要給大家介紹了關(guān)于springboot整合minio的相關(guān)資料,這個(gè)教程可能是全網(wǎng)最詳細(xì)的,需要的朋友可以參考下2022-06-06

