spring容器注入一個介面的兩個實現類
spring容器中能擁有兩個同種型別的bean嗎?我有兩個dao類同時實現一個介面,這兩個介面注入時報了異常如下。
org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.xxx.xxx.xxx.integration.dao.IDAO] is defined: expected single matching bean but found 2: [aDAOImpl, bDAOImpl]
解決方法:
兩個類實現同一個介面,在一個實現類加上@Component("aDAOImpl"),一個加上@Component("bDAOImpl"),在引用的時候加上@Resource(name="aDAOImpl")或者@Resource(name="bDAOImpl"),就會指定用哪個實現類,不加resource註解就會出現上面那個錯誤。
但需特別強調的是,如果有其它的service用到實現類時沒用@Resource,要把所有使用到實現類的註解由@Autowired改為@Resource。
相關推薦
spring容器注入一個介面的兩個實現類
spring容器中能擁有兩個同種型別的bean嗎?我有兩個dao類同時實現一個介面,這兩個介面注入時報了異常如下。 org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique be
一個介面多個實現類的Spring注入方式(註解方式)
轉載: https://blog.csdn.net/niceLiuSir/article/details/80499821 1. 首先, Interface1 介面有兩個實現類 Interface1Impl1 和 Interface1Impl2 Interface1 介面: p
一個介面多個實現類的Spring注入方式
1. 首先, Interface1 介面有兩個實現類 Interface1Impl1 和 Interface1Impl2 Interface1 介面: package com.example.s
【記錄】spring中一個介面多個實現類
重構遇到個小問題,記錄下: 錯誤資訊: *************************** APPLICATION FAILED TO START *************************** Description: Field xxxService in com.ali
spring註解 實現一個介面多個實現類的區分
相應的包 import javax.annotation.Resource; import org.springframework.beans.factory.annotation.Autowired
設計模式-代理類proxy:一個介面多個實現類(基於spring框架)
根據前臺返回的不同引數,選擇一個介面不同的實現類來實現不同業務邏輯,我們用到了proxy代理類。 首先是spring.xml 配置檔案 如下:(proxy 表示代理類 ××ServiceImpl 表示實現類) <bean id="介面名稱" >
net core天馬行空系列: 一個介面多個實現類,利用mixin技術通過自定義服務名,實現精準屬性注入
系列目錄 1.net core天馬行空系列:原生DI+AOP實現spring boot註解式程式設計 2.net core天馬行空系列: 泛型倉儲和宣告式事物實現最優雅的crud操作 哈哈哈哈,大家好,我就是高產似母豬的三合。日常開發中,我們常會遇到這樣的
@resource、@Autowired、@Service在一個介面多個實現類中的應用
Spring在沒有引入註解之前,傳統的Spring做法是使用.xml檔案來對bean進行注入,所有的內容都需要配置在.xml檔案中,使配置和程式設計分離,卻增加了可讀性和複雜度。 Spring註解將複雜的配置檔案用簡單@xxx代替,當出現一個介
Spring用@Autowire向一個類註入一個接口的兩個實現類
err xtend chang autowired 實現類 autowire bbs control 實現 @Servicepublic class AaaService implements IChangePassword { @Override publi
【策略模式】如何結合spring實現一個介面多個實現,如何解決介面選擇問題
1、首先把對映關係放在spring-mvc.xml配置檔案 <bean id="dispatcher" class="com.ms.kai.bms.dispatcher.Abstrac
Spring 一個介面多個實現,如何根據外部條件來實時替換具體實現類
程式碼: <T> Map<String, T> getBeansOfType(Class<T> var1) throws BeansException; 作用: 1. 傳入一個介面的Class 型別,獲取這個class 的所有具體實現,不包括抽象類
Springboot下的配置檔案載入介面PropertySourceLoader以及它的兩個實現類
原由: 今天報了個JRebel: ERROR Class 'org.springframework.boot.env.PropertiesPropertySourceLoader' could not be processed by org.zeroturnaround.javarebel.in
一個介面多個實現,指定實現類
目的:一個介面多個實現時,根據不同的條件呼叫不用的實現1、有如下介面public interface Pay { public Object pay(Map<String,Object> map); }2、有如下兩個實現實現一:@Service("weixinP
List動態陣列中兩個實現類:ArrayList和LinkedList的用法和區別
List 簡介 List是一個動態陣列,使用者可以對插入元素的位置進行精確的控制,可以根據整數索引(index)獲取序列中的元素,允許插入重複的值,包null值 常用的兩個實現類:ArrayList、LinkedList Arra
spring註解識別一個介面的多個實現類
1.比如有一個介面如下: publicinterface Filter { public String doFilter(String param); } 2.有如下介面實現類: publicclass TimeFilter imp
兩個棧實現一個佇列 兩個佇列實現一個棧
棧和佇列實現的程式碼在連結中的部落格https://blog.csdn.net/Damn_Yang/article/details/83928852 兩個棧實現一個佇列 思路: 入隊時,直接壓入
兩個佇列實現一個棧 + 兩個棧實現一個佇列 Java
面試中常出現讓你手寫兩個佇列實現一個棧,兩個棧實現一個佇列的問題,很是頭疼!今天就仔細將我分析,思考過的Java程式碼給大家分享一下:(一)兩個佇列實現一個棧: 兩個佇列新增元素,哪個佇列為空,由於
一個介面有多個實現類,當呼叫介面中的方法時,如何判定用的是哪個實現類
一、簡單例子: 1. 直接new一個例項,這樣肯定知道用的哪個例項2. 定義介面型別的變數,用某個例項去初始化。。。這樣也是肯定知道用的哪個例項一般我們用第二種方式有一個好處,如果以後要改動,那麼只需要修改其引用的例項,改動較少!舉個例子:A介面,A1,A2,A3實現A
兩個棧實現一個佇列/兩個佇列實現一個棧
1兩個棧實現一個佇列 1.原理分析: 佇列的主要操作有兩個:入隊操作和出隊操作,出隊時從隊頭出,入隊是從隊尾插入,入隊的操作和入棧的操作類似,而最關鍵的問題是出隊操作,要出佇列的是佇列的第一個元素,而出棧的是棧的棧頂元素,所以我們可以這樣: 假設兩個棧A和棧B
STM8L EXITB一個埠兩個中斷的實現
void EXTI_Config(void) { EXTI_DeInit(); EXTI_SetPinSensitivity(EXTI_Pin_5,EXTI_Trigger_Falling); ITC_SetSoftwarePriority