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

關(guān)于@Autowired的使用及注意事項(xiàng)

 更新時(shí)間:2024年05月07日 10:14:25   作者:JinF~  
這篇文章主要介紹了關(guān)于@Autowired的使用及注意事項(xiàng),具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

@Autowired 注意事項(xiàng)

簡單來說就是 在類型正確的前提下,先根據(jù)名字找,沒找到時(shí)再根據(jù)類型找

例子如下:

如果容器中存在一個(gè)bean,這個(gè)bean的類型和id與被標(biāo)注@Autowired的屬性或者方法參數(shù)的類型和名稱相同,那么此時(shí)的@Autowired相當(dāng)于

@Autowired
@Qualifier("屬性名")

例如:

存在一個(gè)接口TestInterface,有兩個(gè)實(shí)現(xiàn)類分別是TestClass1TestClass2都在spring容器中,此時(shí)有一個(gè)SomeClass類需要注入一個(gè)TestInterface屬性

代碼如下:

@Component
@Slf4j
public class SomeClass {

    @Autowired
    //這種方式會報(bào)錯,因?yàn)榇嬖趦蓚€(gè)TestInterface類型的bean
    private TestInterface testInterface;
    
	//不會報(bào)錯,因?yàn)榇藭r(shí)相當(dāng)于
	/*
	@Autowired
	@Qualifier("testClass1")
	*/
	@Autowired
	private TestInterface testClass1;

    public TestInterface getTestClass() {
        return testClass1;
    }
}

可以在某一個(gè)組件上加上@Primary,強(qiáng)制使用該類型,比如

@Component
@Primary
public class TestClass2 implements TestInterface {
    private String s="testClass2";

    public String getS() {
        return s;
    }
}

那么

@Autowired
	private TestInterface testClass1;

testClass1此時(shí)的類型是TestClass2

@Autowired放的位置

1.放在屬性前,比如controller層調(diào)用service層,加在屬性前不會調(diào)用set方法

@RestController
@RequestMapping("/student/card")
public class CardController {
    @Autowired
    CardService cardService;
}

2.放在set方法前,會通過調(diào)用set方法給屬性賦值

@RestController
@RequestMapping("/student/card")
public class CardController {
    
    CardService cardService;
    
    @Autowired
    public void setCardService(CardService cardService) {
        this.cardService = cardService;
    }
}

3.寫在set方法的參數(shù)列表中:只能是@Bean的形式,(可以不寫,會默認(rèn)@Autowired),并且默認(rèn)通過名字注入,相當(dāng)于

public SomeClass someClass(@Autowired @Qualifier("card") Card card)
	@Bean
    public SomeClass someClass(@Autowired Card card){
        SomeClass someClass=new SomeClass();
        someClass.setCard(card);
        return someClass;
    }
    
    @Bean
    public Card card(){
        Card card=new Card();
        card.setStudentId("01");
        return card;
    }

根據(jù)名字注入

同時(shí)使用@Autowired@Qualifier("beanName")

	@Autowired
    @Qualifier("beanName")
    private MybatisCardMapper mapper;

總結(jié)

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

相關(guān)文章

  • Java實(shí)現(xiàn)的模糊匹配某文件夾下的文件并刪除功能示例

    Java實(shí)現(xiàn)的模糊匹配某文件夾下的文件并刪除功能示例

    這篇文章主要介紹了Java實(shí)現(xiàn)的模糊匹配某文件夾下的文件并刪除功能,涉及java針對目錄與文件的遍歷、匹配、判斷、刪除等相關(guān)操作技巧,需要的朋友可以參考下
    2018-02-02
  • Java8 CompletableFuture詳解

    Java8 CompletableFuture詳解

    這篇文章主要介紹了Java8 CompletableFuture詳解,CompletableFuture extends Future提供了方法,一元操作符和促進(jìn)異步性以及事件驅(qū)動編程模型,需要的朋友可以參考下
    2014-06-06
  • 關(guān)于JAVA中this的使用方法小結(jié)

    關(guān)于JAVA中this的使用方法小結(jié)

    現(xiàn)在讓大家看一個(gè)小例子,給你分享一下JAVA中“this”的用法,有需要的朋友可以參考一下
    2013-10-10
  • 基于opencv+java實(shí)現(xiàn)簡單圖形識別程序

    基于opencv+java實(shí)現(xiàn)簡單圖形識別程序

    這篇文章主要給大家介紹了如何基于opencv+java實(shí)現(xiàn)簡單圖形識別程序的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-01-01
  • Java兩整數(shù)相除向上取整的方式詳解(Math.ceil())

    Java兩整數(shù)相除向上取整的方式詳解(Math.ceil())

    在調(diào)外部接口獲取列表數(shù)據(jù)時(shí),需要判斷是否已經(jīng)取完了所有的值,因此需要用到向上取整,下面這篇文章主要給大家介紹了關(guān)于Java兩整數(shù)相除向上取整的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • SpringBoot?整合Thymeleaf教程及使用方法

    SpringBoot?整合Thymeleaf教程及使用方法

    Thymeleaf?是一款用于渲染?XML/XHTML/HTML5?內(nèi)容的模板引擎,它與?JSP,Velocity,FreeMaker?等模板引擎類似,也可以輕易地與?Spring?MVC?等?Web?框架集成,這篇文章主要介紹了SpringBoot?整合Thymeleaf教程及使用,需要的朋友可以參考下
    2023-11-11
  • IDEA中啟動多個(gè)SpringBoot服務(wù)的實(shí)現(xiàn)示例

    IDEA中啟動多個(gè)SpringBoot服務(wù)的實(shí)現(xiàn)示例

    本文主要介紹了IDEA中啟動多個(gè)SpringBoot服務(wù)的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • Java使用二分法進(jìn)行查找和排序的示例

    Java使用二分法進(jìn)行查找和排序的示例

    這篇文章主要介紹了Java使用二分法進(jìn)行查找和排序的示例,二分插入排序和二分查找是基礎(chǔ)的算法,需要的朋友可以參考下
    2016-04-04
  • 簡談java并發(fā)FutureTask的實(shí)現(xiàn)

    簡談java并發(fā)FutureTask的實(shí)現(xiàn)

    這篇文章主要介紹了簡談java并發(fā)FutureTask的實(shí)現(xiàn),FutureTask都是用于獲取線程執(zhí)行的返回結(jié)果。文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下
    2019-06-06
  • 利用Java寫一個(gè)學(xué)生管理系統(tǒng)

    利用Java寫一個(gè)學(xué)生管理系統(tǒng)

    今天這篇文章就給給大家分享利用Java寫一個(gè)學(xué)生管理系統(tǒng)吧,先寫一個(gè)簡單的用List來實(shí)現(xiàn)學(xué)生管理系統(tǒng):
    2021-09-09

最新評論