SpringBoot自動(dòng)裝配原理詳細(xì)解析
@Bean主要在@Configuration中,通過(guò)方法進(jìn)行注入相關(guān)的Bean,@Compoent與@Service歸為一類,在類上加注入對(duì)應(yīng)的類,需要的朋友可以參考下
1.@SpringBootApplication注解理解
一個(gè)對(duì)象交給Spring來(lái)管理的三種方式 @Bean @Compoment @Import
@Bean主要在@Configuration中,通過(guò)方法進(jìn)行注入相關(guān)的Bean
@Compoent與@Service歸為一類,在類上加注入對(duì)應(yīng)的類
@Import注解只有一value方法,注釋中指名該注解必須作用在@Configuration定義的類上,Value可以為想要交割Spring管理的類文件數(shù)組 Impor
2.查看創(chuàng)建Bean的個(gè)數(shù),以及展示
查看展示個(gè)數(shù)
ConfigurableApplicationContext context = SpringApplication.run(PaymentMain8001.class, args); int counts = context.getBeanDefinitionCount(); System.out.println(counts);
查看IOC中所有的Bean
ConfigurableApplicationContext context = SpringApplication.run(PaymentMain8001.class, args); ConfigurableListableBeanFactory beanFactory = context.getBeanFactory(); beanFactory.getBeanNamesIterator().forEachRemaining(System.out::println);
3.條件化配置注解
在自動(dòng)配置類上有一些ConditionXxxx注解嗎,該注解的作用進(jìn)行條件化的選擇
注解 | 作用 |
@ConditionalOnBean | 如果存在某個(gè)Bean, 配置類生效 |
@ConditionalOnMissingBean | 如果不存在某個(gè)Bean, 配置類生效 |
@ConditionalOnClass | 如果存在某個(gè)類, 配置類生效 |
@ConditionalOnMissingClass | 如果不存在某個(gè)類, 配置類生效 |
@ConditionalOnProperty | 如果存在某個(gè)屬性配置, 配置類生效 |
@ConditionalOnWebApplication | 如果是一個(gè)web應(yīng)用, 配置類生效 |
@ConditionalOnNotWebApplication | 如果不是一個(gè)web應(yīng)用, 配置類生效 |
相關(guān)舉例WebMvcAutoconfiguration
視圖解析器
4.SpringBootApplication.run()的理解
舉例:存在對(duì)應(yīng)的配置文件
到此這篇關(guān)于SpringBoot自動(dòng)裝配原理詳細(xì)解析的文章就介紹到這了,更多相關(guān)SpringBoot自動(dòng)裝配內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解springboot項(xiàng)目帶Tomcat和不帶Tomcat的兩種打包方式
這篇文章主要介紹了詳解springboot項(xiàng)目帶Tomcat和不帶Tomcat的兩種打包方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Spring Boot開(kāi)發(fā)Web應(yīng)用詳解
這篇文章主要介紹了Spring Boot開(kāi)發(fā)Web應(yīng)用詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04淺談MyBatis 如何執(zhí)行一條 SQL語(yǔ)句
Mybatis 是 Java 開(kāi)發(fā)中比較常用的 ORM 框架。在日常工作中,我們都是直接通過(guò) Spring Boot 自動(dòng)配置,并直接使用,但是卻不知道 Mybatis 是如何執(zhí)行一條 SQL 語(yǔ)句的,下面就一起講解一下2021-05-05Spring數(shù)據(jù)源及配置文件數(shù)據(jù)加密實(shí)現(xiàn)過(guò)程詳解
這篇文章主要介紹了Spring數(shù)據(jù)源及配置文件數(shù)據(jù)加密實(shí)現(xiàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05簡(jiǎn)單的用java實(shí)現(xiàn)讀/寫文本文件的示例
同時(shí)也展示了如果從輸入流中讀出來(lái)內(nèi)容寫入輸出流中(僅限文本流) 三個(gè)例子可以獨(dú)立存在,所以根據(jù)需要只看其中一個(gè)就行了。2008-07-07解決java main函數(shù)中的args數(shù)組傳值問(wèn)題
這篇文章主要介紹了解決java main函數(shù)中的args數(shù)組傳值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02