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

基于Spring的注解@Qualifier小結(jié)

 更新時間:2021年08月27日 10:04:49   作者:小菜的歷程  
這篇文章主要介紹了Spring的注解@Qualifier小結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Spring的注解@Qualifier小結(jié)

近期在捯飭spring的注解,現(xiàn)將遇到的問題記錄下來,以供遇到同樣問題的童鞋解決~

先說明下場景,代碼如下

有如下接口:

public interface EmployeeService {
    public EmployeeDto getEmployeeById(Long id);
}

同時有下述兩個實現(xiàn)類 EmployeeServiceImpl和EmployeeServiceImpl1:

@Service("service")
public class EmployeeServiceImpl implements EmployeeService {
    public EmployeeDto getEmployeeById(Long id) {
        return new EmployeeDto();
    }
}
@Service("service1")
public class EmployeeServiceImpl1 implements EmployeeService {
    public EmployeeDto getEmployeeById(Long id) {
        return new EmployeeDto();
    }
}

調(diào)用代碼如下:

@Controller
@RequestMapping("/emplayee.do")
public class EmployeeInfoControl {    
    @Autowired
    EmployeeService employeeService;     
    @RequestMapping(params = "method=showEmplayeeInfo")
    public void showEmplayeeInfo(HttpServletRequest request, HttpServletResponse response, EmployeeDto dto) {
        #略
    }
}

在啟動tomcat時報如下錯誤:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'employeeInfoControl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: com.test.service.EmployeeService com.test.controller.EmployeeInfoControl.employeeService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.test.service.EmployeeService] is defined: expected single matching bean but found 2: [service1, service2]

其實報錯信息已經(jīng)說得很明確了,在autoware時,由于有兩個類實現(xiàn)了EmployeeService接口,所以Spring不知道應(yīng)該綁定哪個實現(xiàn)類,所以拋出了如上錯誤。

這個時候就要用到@Qualifier注解了,qualifier的意思是合格者,通過這個標(biāo)示,表明了哪個實現(xiàn)類才是我們所需要的,我們修改調(diào)用代碼,添加@Qualifier注解,需要注意的是@Qualifier的參數(shù)名稱必須為我們之前定義@Service注解的名稱之一!

@Controller
@RequestMapping("/emplayee.do")
public class EmployeeInfoControl {    
    @Autowired
    @Qualifier("service")
    EmployeeService employeeService;    
    @RequestMapping(params = "method=showEmplayeeInfo")
    public void showEmplayeeInfo(HttpServletRequest request, HttpServletResponse response, EmployeeDto dto) {
        #略
    }
}

問題解決!

@qualifier注解

@Qualifier限定哪個bean應(yīng)該被自動注入。當(dāng)Spring無法判斷出哪個bean應(yīng)該被注入時,@Qualifier注解有助于消除歧義bean的自動注入。

參見下面的例子

public class Staff{    
    @Autowired    
    private user user;
}

我們有兩個bean定義為Person類的實例。

<beanid="staff"class="com.test.Staff"/> 
<beanid="user1"class="com.test.User">
<property name="name"value="zhangsan"/></bean> 
<beanid="user2"class="com.test.User">
<property name="name"value="lisi"/></bean>

Spring 知道哪個bean應(yīng)該自動注入?不。當(dāng)您運行上面的例子時,拋出如下異常:

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.test.User] is defined: expected single matching bean but found2: [user1, user2]

要解決以上問題,你需要使用@Quanlifier注解告訴Spring 哪個bean應(yīng)該被autowired的。

public class Staff
{
    @Autowired
    @Qualifier("user1")
    private User user;
}

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

相關(guān)文章

  • java實現(xiàn)收藏功能

    java實現(xiàn)收藏功能

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)收藏功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 詳解Springboot Oauth2 Server搭建Oauth2認(rèn)證服務(wù)

    詳解Springboot Oauth2 Server搭建Oauth2認(rèn)證服務(wù)

    這篇文章主要介紹了Springboot Oauth2 Server 搭建Oauth2認(rèn)證服務(wù),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • 關(guān)于Maven中pom.xml文件配置詳解

    關(guān)于Maven中pom.xml文件配置詳解

    pom.xml是Maven項目的核心配置文件,它描述了項目的結(jié)構(gòu)、依賴關(guān)系、構(gòu)建配置等信息,通過合理配置pom.xml,可以提高項目的可維護性和構(gòu)建效率
    2025-01-01
  • Java持久層面試題目及答案整理

    Java持久層面試題目及答案整理

    在本篇文章里小編給大家分享的是一篇關(guān)于Java持久層面試題目及答案整理內(nèi)容,需要的朋友們學(xué)習(xí)參考下。
    2020-02-02
  • 封裝jndi操作ldap服務(wù)器的工具類

    封裝jndi操作ldap服務(wù)器的工具類

    這篇文章主要介紹了封裝JNDI操作LDAP服務(wù)器的工具類,使用者只需要會使用List,Map 數(shù)據(jù)結(jié)構(gòu),大家參考使用吧
    2014-01-01
  • 詳解Elasticsearch如何把一個索引變?yōu)橹蛔x

    詳解Elasticsearch如何把一個索引變?yōu)橹蛔x

    這篇文章主要為大家介紹了詳解Elasticsearch如何把一個索引變?yōu)橹蛔x示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • 詳解Spring Boot集成MyBatis(注解方式)

    詳解Spring Boot集成MyBatis(注解方式)

    本篇文章主要介紹了詳解Spring Boot集成MyBatis(注解方式),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • SpringCloud中Sentinel基礎(chǔ)場景和異常處理方式

    SpringCloud中Sentinel基礎(chǔ)場景和異常處理方式

    這篇文章主要介紹了SpringCloud中Sentinel基礎(chǔ)場景和異常處理方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • mybatis-plus支持null字段全量更新的兩種方法

    mybatis-plus支持null字段全量更新的兩種方法

    本文主要介紹了mybatis-plus支持null字段全量更新的兩種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Java8新增的重復(fù)注解功能示例

    Java8新增的重復(fù)注解功能示例

    這篇文章主要介紹了Java8新增的重復(fù)注解功能,結(jié)合實例形式分析了java8重復(fù)注解的功能、定義、使用方法及相關(guān)操作注意事項,需要的朋友可以參考下
    2019-10-10

最新評論

岑溪市| 越西县| 蒲江县| 响水县| 商南县| 开远市| 全州县| 定陶县| 灵宝市| 邵东县| 津市市| 霍城县| 个旧市| 南雄市| 应城市| 东辽县| 抚宁县| 改则县| 青阳县| 雅江县| 花莲县| 正安县| 五原县| 乐清市| 新蔡县| 汽车| 阳西县| 西城区| 十堰市| 元氏县| 桂平市| 永胜县| 屏山县| 通州区| 吉木萨尔县| 镇江市| 五华县| 闸北区| 伊金霍洛旗| 鄂伦春自治旗| 齐河县|