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

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

