最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

@Autowired 注意事項(xiàng)

簡(jiǎn)單來(lái)說(shuō)就是 在類型正確的前提下,先根據(jù)名字找,沒(méi)找到時(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
    //這種方式會(huì)報(bào)錯(cuò),因?yàn)榇嬖趦蓚€(gè)TestInterface類型的bean
    private TestInterface testInterface;
    
	//不會(huì)報(bào)錯(cuò),因?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層,加在屬性前不會(huì)調(diào)用set方法

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

2.放在set方法前,會(huì)通過(guò)調(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的形式,(可以不寫,會(huì)默認(rèn)@Autowired),并且默認(rèn)通過(guò)名字注入,相當(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ù)據(jù)類型和運(yùn)算符詳解

    Java基本數(shù)據(jù)類型和運(yùn)算符詳解

    這篇文章主要介紹了Java基本數(shù)據(jù)類型和運(yùn)算符,結(jié)合實(shí)例形式詳細(xì)分析了java基本數(shù)據(jù)類型、數(shù)據(jù)類型轉(zhuǎn)換、算術(shù)運(yùn)算符、邏輯運(yùn)算符等相關(guān)原理與操作技巧,需要的朋友可以參考下
    2020-02-02
  • java實(shí)現(xiàn)文件變化監(jiān)控的方法(推薦)

    java實(shí)現(xiàn)文件變化監(jiān)控的方法(推薦)

    下面小編就為大家?guī)?lái)一篇java實(shí)現(xiàn)文件變化監(jiān)控的方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-08-08
  • Spring實(shí)戰(zhàn)之容器中的工程Bean用法示例

    Spring實(shí)戰(zhàn)之容器中的工程Bean用法示例

    這篇文章主要介紹了Spring實(shí)戰(zhàn)之容器中的工程Bean用法,結(jié)合實(shí)例形式分析了Sring框架容器中的工程Bean相關(guān)配置、使用操作技巧,需要的朋友可以參考下
    2019-11-11
  • Java中forward轉(zhuǎn)發(fā)與redirect重定向的區(qū)別

    Java中forward轉(zhuǎn)發(fā)與redirect重定向的區(qū)別

    轉(zhuǎn)發(fā)和重定向都是常用的頁(yè)面跳轉(zhuǎn)方式,但在實(shí)現(xiàn)上有一些區(qū)別,本文主要介紹了Java中forward轉(zhuǎn)發(fā)與redirect重定向的區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • Java解決線程的不安全問(wèn)題之volatile關(guān)鍵字詳解

    Java解決線程的不安全問(wèn)題之volatile關(guān)鍵字詳解

    這篇文章主要介紹了Java解決線程的不安全問(wèn)題之volatile關(guān)鍵字詳解,可見(jiàn)性指一個(gè)線程對(duì)共享變量值的修改,能夠及時(shí)地被其他線程看到,而 volatile 關(guān)鍵字就保證內(nèi)存的可見(jiàn)性,需要的朋友可以參考下
    2023-08-08
  • Open?Feign之非SpringCloud方式使用示例

    Open?Feign之非SpringCloud方式使用示例

    這篇文章主要為大家介紹了Open?Feign之非SpringCloud方式使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • java dom4j解析xml用到的幾個(gè)方法

    java dom4j解析xml用到的幾個(gè)方法

    這篇文章主要介紹了java dom4j解析xml用到的幾個(gè)方法,有需要的朋友可以參考一下
    2013-12-12
  • SpringMVC前后端傳值的幾種實(shí)現(xiàn)方式

    SpringMVC前后端傳值的幾種實(shí)現(xiàn)方式

    本文主要介紹了SpringMVC前后端傳值的方式實(shí)現(xiàn),包括使用HttpServletRequest、HttpSession、Model和ModelAndView等方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-02-02
  • SpringBoot如何實(shí)現(xiàn)各種參數(shù)校驗(yàn)

    SpringBoot如何實(shí)現(xiàn)各種參數(shù)校驗(yàn)

    文章詳細(xì)介紹了SpringValidation的使用,包括簡(jiǎn)單使用、requestBody參數(shù)校驗(yàn)、requestParam/PathVariable參數(shù)校驗(yàn)、統(tǒng)一異常處理、分組校驗(yàn)、嵌套校驗(yàn)、集合校驗(yàn)、自定義校驗(yàn)、編程式校驗(yàn)、快速失敗、@Valid和@Validated的區(qū)別以及實(shí)現(xiàn)原理
    2024-12-12
  • SpringBoot中的Logging詳解

    SpringBoot中的Logging詳解

    這篇文章主要介紹了SpringBoot中的Logging詳解,log配置可能是被忽視的一個(gè)環(huán)節(jié),一般的項(xiàng)目中日志配置好了基本上很少去改動(dòng),我們常規(guī)操作是log.info來(lái)記錄日志內(nèi)容,很少會(huì)有人注意到springBoot中日志的配置,需要的朋友可以參考下
    2023-09-09

最新評(píng)論

仙居县| 枣阳市| 盐亭县| 霍城县| 根河市| 台安县| 密云县| 嘉义县| 弥渡县| 驻马店市| 荆州市| 兰溪市| 古交市| 兴海县| 宜章县| 乌拉特中旗| 金寨县| 航空| 五华县| 呼伦贝尔市| 建昌县| 巴南区| 南澳县| 奇台县| 青岛市| 志丹县| 土默特左旗| 扎囊县| 北宁市| 巴中市| 昌平区| 东明县| 长武县| 泰来县| 淮滨县| 榕江县| 宁河县| 绍兴市| 汝州市| 衡阳市| 依兰县|