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

spring-@Autowired注入與構(gòu)造函數(shù)注入使用方式

 更新時間:2023年12月01日 15:24:07   作者:smilecjw  
這篇文章主要介紹了spring-@Autowired注入與構(gòu)造函數(shù)注入使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

前言

因為業(yè)務(wù)關(guān)系也看了些同事寫的代碼,因為公司沒有明確規(guī)定,有一部分人在注入依賴的時候使用了用Spring推薦的構(gòu)造器注入的方式,一部分人使用了@Autowired的注解進(jìn)行注入。

因此,接下來我試著總結(jié)歸納一下相關(guān)的情況,做一次回顧。

用自己的話去說出來才算是真的掌握。

使用介紹

1.@Autowired注入

@RestController
@RequestMapping("/test")
public class TestController {
    @Autowired
    private List<TestService> testServices;
    @Autowired
    private List<ChainAsbtract> chains;
 
    private ChainAsbtract target;
 
}

2.構(gòu)造器注入

Spring4.3+之后,constructor注入支持非顯示注入方式。

@RestController
@RequestMapping("/test")
public class TestController {
//    @Autowired
    private final List<TestService> testServices;
//    @Autowired
    private final List<ChainAsbtract> chains;
 
//    @Autowired
    public TestController(List<TestService> testServices, List<ChainAsbtract> chains) {
        this.testServices = testServices;
        this.chains = chains;
    }
 
    
}

3.setter注入

@RestController
@RequestMapping("/test")
public class TestController {
//    @Autowired
    private final List<TestService> testServices;
//    @Autowired
    private final List<ChainAsbtract> chains;
 
    @Autowired
    public void setTestServices(List<TestService> testServices){
        this.testServices = testServices;
    }
 
    @Autowired
    public void setTestServices(List<ChainAsbtract> chains){
        this.chains = chains;
    }
    
}

事實上,spring在4.x版本后就推薦使用構(gòu)造器的方式的來注入fileld

官方推薦理由

  • 單一職責(zé):當(dāng)使用構(gòu)造函數(shù)注入的時候,你會很容易發(fā)現(xiàn)參數(shù)是否過多,這個時候需要考慮你這個類的職責(zé)是否過大,考慮拆分的問題;而當(dāng)使用@Autowired注入field的時候,不容易發(fā)現(xiàn)問題
  • 依賴不可變:只有使用構(gòu)造函數(shù)注入才能注入final
  • 依賴隱藏:使用依賴注入容器意味著類不再對依賴對象負(fù)責(zé),獲取依賴對象的職責(zé)就從類抽離出來,IOC容器會幫你自動裝備。這意味著它應(yīng)該使用更明確清晰的公用接口方法或者構(gòu)造器,這種方式就能很清晰的知道類需要什么和到底是使用setter還是構(gòu)造器
  • 降低容器耦合度:依賴注入框架的核心思想之一是托管類不應(yīng)依賴于所使用的DI容器。換句話說,它應(yīng)該只是一個普通的POJO,只要您將其傳遞給所有必需的依賴項,就可以獨立地實例化。這樣,您可以在單元測試中實例化它,而無需啟動IOC容器并單獨進(jìn)行測試(使用一個可以進(jìn)行集成測試的容器)。如果沒有容器耦合,則可以將該類用作托管或非托管類,甚至可以切換到新的DI框架。

另外,在使用構(gòu)造器的使用能避免注入的依賴是空的情況。

因為在bean的生命周期里面先執(zhí)行的是bean的構(gòu)造器,然后才給bean里面的屬性賦值。

具體內(nèi)容在bean的生命周期里面,后面我學(xué)習(xí)之后按照自己的理解寫寫。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中使用ZXing和QRCode生成二維碼的示例詳解

    Java中使用ZXing和QRCode生成二維碼的示例詳解

    生成二維碼在Java中有多種方法,常用的是通過第三方庫來實現(xiàn),比較流行的庫包括?ZXing?(Zebra?Crossing)?和?QRCode,本文小編就給大家介紹了Java中使用ZXing和QRCode生成二維碼的示例,需要的朋友可以參考下
    2024-09-09
  • Springboot @RequestBody注解踩坑記錄

    Springboot @RequestBody注解踩坑記錄

    這篇文章主要介紹了Springboot @RequestBody注解踩坑記錄,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 深入理解Spring AOP

    深入理解Spring AOP

    這篇文章主要介紹了深入理解Spring AOP,詳細(xì)的介紹了spring aop的具體實現(xiàn)與理論
    2017-01-01
  • java中 spring 定時任務(wù) 實現(xiàn)代碼

    java中 spring 定時任務(wù) 實現(xiàn)代碼

    java中 spring 定時任務(wù) 實現(xiàn)代碼,需要的朋友可以參考一下
    2013-03-03
  • logback使用MDCFilter日志過濾源碼解讀

    logback使用MDCFilter日志過濾源碼解讀

    這篇文章主要介紹了logback使用MDCFilter日志過濾源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • java.lang.OutOfMemoryError 錯誤整理及解決辦法

    java.lang.OutOfMemoryError 錯誤整理及解決辦法

    這篇文章主要介紹了java.lang.OutOfMemoryError 錯誤整理及解決辦法的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • Javaweb監(jiān)聽器實例之統(tǒng)計在線人數(shù)

    Javaweb監(jiān)聽器實例之統(tǒng)計在線人數(shù)

    這篇文章主要為大家詳細(xì)介紹了Javaweb監(jiān)聽器實例之統(tǒng)計在線人數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • MyBatis配置的應(yīng)用與對比jdbc的優(yōu)勢

    MyBatis配置的應(yīng)用與對比jdbc的優(yōu)勢

    這篇文章主要介紹了MyBatis配置的使用與相對于jdbc的優(yōu)勢,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 如何用Java Stream寫出既高雅又裝*的代碼

    如何用Java Stream寫出既高雅又裝*的代碼

    如何讓同事看不懂你寫的代碼,然后覺得你非常牛逼,這里用到了stream()與Lambda,需要有點基礎(chǔ),沒基礎(chǔ)你炫個&#128296;優(yōu)雅永不過時~ 看下面文章時記得穿燕尾服,拿高腳杯
    2021-08-08
  • Java線程等待用法實例分析

    Java線程等待用法實例分析

    這篇文章主要介紹了Java線程等待用法,結(jié)合實例形式分析了obj.wait()實現(xiàn)線程等待相關(guān)原理與操作技巧,需要的朋友可以參考下
    2018-09-09

最新評論