欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot底層注解詳解

 更新時(shí)間:2023年05月15日 09:29:38   作者:無敵的佐菲zzz  
這篇文章主要介紹了SpringBoot底層注解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

一、 @Configuration

我們先來看看,以前我們用spring是怎么配置bean的屬性值:

雖然不算多,但是如果每一個(gè)bean都這樣配置,屬實(shí)不容易。這個(gè)時(shí)候我們的@Configuration來了,看他是怎么進(jìn)行配置bean的:

直接在類上加上@Configuration注解,告訴SpringBoot,我們Myconfig是個(gè)配置類哈!然后我們只需要?jiǎng)?chuàng)建方法返回一個(gè)對象,再在方法上添加@Bean注解將它交給容器來注冊。如果我們以后要獲取Bean對象,只需要調(diào)用這個(gè)方法就行了,不過需要注意的是它默認(rèn)的就是單例的,這和spring一樣,如果我們想要它成為多例需要設(shè)置一下@Configuration注解里面的proxyBeanMethods屬性,因此我們引出了FULL和LITE模式。

Full模式和Lite模式

Full模式是指proxyBeanMethods = true,開啟代理bean的方法。此時(shí)調(diào)用配置類中每一個(gè)給而容器注冊組件方法,都會(huì)從容器中找組件,保持單例模式。它保證了每個(gè)@Bean方法無論被調(diào)用多少次,返回的組件都是單例的。

Lite模式是指proxyBeanMethods = false,關(guān)閉代理bean的方法。容器中不會(huì)保存代理對象,每一次調(diào)用配置類里面的方法,·都會(huì)產(chǎn)生一個(gè)新的對象。這可以解決組件依賴的問題。它保證了每個(gè)@Bean方法調(diào)用多少次返回的組件都是新創(chuàng)建的。

那么我們應(yīng)該思考什么時(shí)候用Full模式什么時(shí)候用Lite模式?

二、@Import 導(dǎo)入組件

我們先看一下這個(gè)注解的內(nèi)部結(jié)構(gòu)。

三、@Conditional

條件裝配注解:滿足我們Conditional指定的條件,就進(jìn)行組件注入,不然不進(jìn)行組件注入。

我們發(fā)現(xiàn)它的子注解還是相對比較多的,我們挑幾個(gè)常見的注解來說一下:

案例:

這里我們故意將這個(gè)@Bean("tom")注釋掉,但是我們依然保留user01(),我們看看我們的容器中有沒有包含user01這個(gè)組件:

false,很遺憾,因?yàn)?rdquo;tom“,user01也無法被注冊了。

四、@ImportResource

這個(gè)注解是用來導(dǎo)入spring配置文件的

五、@ConfigurationProperties

這個(gè)注解是用來進(jìn)行配置綁定的。

我們有兩種方法:
方法一:@Component+@ConfigurationProperties組合使用

我們在核心配置文件applicantion.properties中配置前綴為mycar的值

我們看一下網(wǎng)頁上這個(gè)car的屬性是什么?

與我們在核心配置文件配置的值相同。

方法二:@EnableConfigurationProperties+@ConfigurationProperties組合使用

@EnableConfigurationPropertise:開啟組件屬性配置功能,并把這個(gè)組件自動(dòng)注冊到容器中。

需要注意的是: @ConfigurationProperties不會(huì)像Spring容器注入相關(guān)處理類,只是起到相關(guān)標(biāo)記作用,相關(guān)處理邏輯還是由@EnableConfigurationPropertise導(dǎo)入處理類來完成。僅僅被標(biāo)記EnableConfigurationPropertise注解的類,默認(rèn)情況下也不會(huì)注冊為Bean。

以上就是SpringBoot底層注解詳解的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot底層注解的資料請關(guān)注腳本之家其它相關(guān)文章!

以上就是SpringBoot底層注解詳解的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot底層注解的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用spring@value加載時(shí)機(jī)

    使用spring@value加載時(shí)機(jī)

    這篇文章主要介紹了使用spring@value加載時(shí)機(jī)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 怎樣通過反射獲取非靜態(tài)內(nèi)部類實(shí)例

    怎樣通過反射獲取非靜態(tài)內(nèi)部類實(shí)例

    這篇文章主要介紹了怎樣通過反射獲取非靜態(tài)內(nèi)部類實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 深入理解Java之jvm啟動(dòng)流程

    深入理解Java之jvm啟動(dòng)流程

    這篇文章主要介紹了深入理解Java之jvm啟動(dòng)流程,文章內(nèi)容講解的很清晰,有對這方面感興趣的同學(xué)可以研究下
    2021-02-02
  • java 數(shù)據(jù)結(jié)構(gòu)中棧和隊(duì)列的實(shí)例詳解

    java 數(shù)據(jù)結(jié)構(gòu)中棧和隊(duì)列的實(shí)例詳解

    這篇文章主要介紹了java 數(shù)據(jù)結(jié)構(gòu)中棧和隊(duì)列的實(shí)例詳解的相關(guān)資料,主要使用數(shù)組與線性表的方法來實(shí)現(xiàn),需要的朋友可以參考下
    2017-09-09
  • Java 中的弱引用是什么

    Java 中的弱引用是什么

    這篇文章主要介紹了Java 中的弱引用是什么,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2021-01-01
  • 老生常談java中的數(shù)組初始化

    老生常談java中的數(shù)組初始化

    下面小編就為大家?guī)硪黄仙U刯ava中的數(shù)組初始化。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04
  • SpringBoot3.0+SpringSecurity6.0+JWT的實(shí)現(xiàn)

    SpringBoot3.0+SpringSecurity6.0+JWT的實(shí)現(xiàn)

    本文主要介紹了SpringBoot3.0+SpringSecurity6.0+JWT的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • mybatis之調(diào)用帶輸出參數(shù)的存儲(chǔ)過程(Oracle)

    mybatis之調(diào)用帶輸出參數(shù)的存儲(chǔ)過程(Oracle)

    這篇文章主要介紹了mybatis調(diào)用帶輸出參數(shù)的存儲(chǔ)過程(Oracle),具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 簡單了解Thymeleaf語法 數(shù)據(jù)延遲加載使用實(shí)例

    簡單了解Thymeleaf語法 數(shù)據(jù)延遲加載使用實(shí)例

    這篇文章主要介紹了簡單了解Thymeleaf語法 數(shù)據(jù)延遲加載使用實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2010-05-05
  • RxJava+Retrofit+Mvp實(shí)現(xiàn)購物車

    RxJava+Retrofit+Mvp實(shí)現(xiàn)購物車

    這篇文章主要為大家詳細(xì)介紹了RxJava+Retrofit+Mvp實(shí)現(xiàn)購物車功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05

最新評論