<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【開發(fā)日記】Spring中@Autowired和@Resource

          共 1175字,需瀏覽 3分鐘

           ·

          2022-08-03 19:36

          區(qū)別

          1- 提供方不同

          1.1、@Autowired注解由Spring提供,所屬包:

          org.springframework.beans.factory.annotation

          1.2、@Resource注解由JDK提供,所屬包:

          javax.annotation

          2- 導(dǎo)入方式不同

          2.1、@Autowired注解只能按照類型注入,如果需要使用此注解按名稱注入的話則需要搭配@Qualifier來實(shí)現(xiàn)按名稱注入。

          2.2、@Resource注解默認(rèn)使用名稱注入,但也可以使用類型注入。

          名稱注入:

          @Resource(name="AutowiredTestImpl1")
          private?AutowiredTest?autowiredTest;

          類型注入:

          @Resource(type=AutowiredTest.class)
          private?AutowiredTest?autowiredTest;

          類型和名稱同時(shí)指定:

          @Resource(type=AutowiredTest.class,name?=?"AutowiredTestImpl1")
          private?AutowiredTest?autowiredTest;

          當(dāng)類型與名稱同時(shí)指定時(shí),會(huì)找到唯一符合的bean進(jìn)行注入。

          強(qiáng)制注入

          默認(rèn)情況下,會(huì)在應(yīng)用啟動(dòng)時(shí)@Autowired@Resource注解會(huì)在IOC容器中查找相對(duì)應(yīng)的Bean,如果沒有則報(bào)錯(cuò)。

          使用@Autowired注解可以設(shè)置非強(qiáng)制注入,該注解的required屬性默認(rèn)值為true,表示強(qiáng)制注入;將該屬性值改為false后,在應(yīng)用啟動(dòng)時(shí)如果有這個(gè)Bean就注入,沒有就跳過,不會(huì)報(bào)錯(cuò)。

          @Autowired(required?=?false)
          private?AutowiredTest?autowiredTest;
          多個(gè)符合條件的Bean

          1- 問題

          使用@Autowired時(shí)如果容器中有兩個(gè)或兩個(gè)以上的Bean符合注入條件,會(huì)報(bào)錯(cuò)如下:

          expected?single?matching?bean?but?found?2

          表示期望一個(gè)Bean,但是找到兩個(gè)。

          2- 解決

          2.1、使用@Primary注解設(shè)置主要Bean;當(dāng)發(fā)現(xiàn)多個(gè)符合條件的Bean時(shí),那么優(yōu)先注入被@Primary注解的Bean。

          @Component
          @Primary
          public?class?AutowiredTestImpl1?implements?AutowiredTest...

          2.2、配合@Qualifier注解,實(shí)現(xiàn)的效果如同使用@Resource對(duì)name和type都進(jìn)行了設(shè)置。

          @Autowired
          @Qualifier("AutowiredTestImpl1")
          private?AutowiredTest?autowiredTest;




          瀏覽 78
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费看国产黄色视频 | 成人永久免费 | 日本免费aa | 99在线精品视频免费观看软件 | 人妻斩蜜桃视频网站 |