spring 註解@primary解析
spring中少見的註解@primary註解,例子
@Component
public class MetalSinger implements Singer{
@Override
public String sing(String lyrics) {
return "I am singing with DIO voice: "+lyrics;
}
}
public class OperaSinger implements Singer {
@Override
public String sing (String lyrics) {
return "I am singing in Bocelli voice: "+lyrics;
}
}
這兩個類都實現了singer介面
public interface Singer {
String sing(String lyrics);
}
那麼來個注入的:
@Component
public class SingerService {
private static final Logger logger = LoggerFactory.getLogger(SingerService.class);
@Autowired
private Singer singer;
public String sing(){
return singer.sing("song lyrics");
}
}
那麼最後輸出應該是:I am singing with DIO voice: song lyrics.
原因是隻有MetalSinger使用了註解@component,那麼autowird會只尋找這個標記的
進行注入:
如果也在OperaSinger 中使用了註解,則spring會報異常,不知道到底應該用
哪個:
org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type [main.service.Singer] is defined: expected single matching bean but found 2: metalSinger,operaSinger
而如果要讓spring知道必須注入的是OperaSinger ,則可以用@primary註解告訴
spring:
@Primary
@Component
public class OperaSinger implements Singer{
@Override
public String sing(String lyrics) {
return "I am singing in Bocelli voice: "+lyrics;
}
}
相關推薦
spring 註解@primary解析
spring中少見的註解@primary註解,例子 @Component public class MetalSinger implements Singer{ @Override public String sing(St
spring中少用的註解@primary解析
這次看下spring中少見的註解@primary註解,例子 Java程式碼 @Component public class MetalSinger implements Singer{ @Override public String
spring註解大全解析 spring springboot註解等
今天整理了一下spring常用到的註解: 希望可以幫到你們喲! @Service用於標註業務層元件 @Controller用於標註控制層元件(如struts中的action) @Repository
spring註解 @primary
@Primary:意思是在眾多相同的bean中,優先使用用@Primary註解的bean。 1.在多資料來源的時候,使用@Primary註解用於指定其中一個作為主資料來源,即如果資料庫操作沒有指明使用哪個資料來源的時候,預設使用主資料來源,這個時候我們就使用到了@prima
註解@primary解析
spring中少見的註解@primary註解,例子 @Component public class MetalSinger implements Singer{ @Override public String sing(String lyri
Spring源碼解析-基於註解依賴註入
上下文 owa necessary test processor 當前 dha count any 在spring2.5版本提供了註解的依賴註入功能,可以減少對xml配置。 主要使用的是 AnnotationConfigApplicationContext: 一個註解配置上
Spring註解開發-全面解析常用註解使用方法之生命周期
統一 ota tco conf struct 賦值 組件註冊 功能 pri 本文github位置:https://github.com/WillVi/Spring-Annotation/ 往期文章:Spring註解開發-全面解析常用註解使用方法之組件註冊 bean生命周期
關於@Profile、@Conditional、@Primary、@Qualifier及@Scope等實現高階裝配的spring註解
1、關於@Profile註解的介紹 @Profile註解主要用在針對不同環境而條件選擇的注入bean 在開發過程中由於環境的不同,我們可能在針對某些功能,需要開發不同的實現,然而在某種環境中,只能啟用其中一種實現,其他的實現處於不啟用的狀態。這個時候我們在需要建立的bean上新增@Profi
Spring MVC 註解 @RequestParam解析
在Spring MVC 後臺控制層獲取引數的方式主要有兩種,一種是requset.getParameter(“name”),另一種是用註解@Resquest.Param直接獲取。 一、基本使用獲取提交資料 後臺程式碼: @AuthPassport @RequestMapping("/publishe
終極講解,看了立馬懂 --》Spring註解@Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier 解析
我們在使用spring的時候經常會用到這些註解,那麼這些註解到底有什麼區別呢。我們先來看程式碼 同樣分三層來看: Action 層: package com.ulewo.ioc; import org.springframework.beans.factory.annotation.Autowired; i
spring元註解說明和註解簡單解析以及部分常見註解說明
背景:熟悉註解的作用,以及有可能需要自定義註解。 元註解: @Target 表示該註解可以用於什麼地方,可能的ElementType引數有: CONSTRUCTOR:構造器的宣告 FIELD:域宣告(包括enum例項) LOCAL_VARIABLE:區域性變數宣告 METHOD:方法
非同步任務spring @Async註解原始碼解析
1.引子 開啟非同步任務使用方法: 1).方法上加@Async註解 2).啟動類或者配置類上@EnableAsync 2.原始碼解析 雖然spring5已經出來了,但是我們還是使用的spring4,本文就根據spring-context-4.3.14.RELEASE.jar來分析原始碼。 2.1
Spring註解解釋(@Primary、@Qualifier)
@Primary/@Qualifier 當你一個介面的實現類有多個的時候,你通過@Component來註冊你的實現類有多個,但是在注入的時候使用@Autowired 這樣問題就來了,Sp
Spring註解@Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier 解析
Spring註解@Component、@Repository、@Service、@Controller @Resource、@Autowired、@Qualifier 解析 我們在使用spring的時候經常會用到這些註解,那麼這些註解到底有什麼區別呢。我們先來
【Spring實戰】Spring註解配置工作原理原始碼解析
一、背景知識在【Spring實戰】Spring容器初始化完成後執行初始化資料方法一文中說要分析其實現原理,於是就從原始碼中尋找答案,看原始碼容易跑偏,因此應當有個主線,或者帶著問題、目標去看,這樣才能最大限度的提升自身程式碼水平。由於上文中大部分都基於註解進行設定的(Spri
spring註解原始碼分析-解析和注入註解配置的資源
類內部的註解,如@Autowire、@Value、@Required、@Resource以及EJB和WebService相關的註解,是容器對Bean例項化和依賴注入時,通過容器中註冊的Bean後置處理處理這些註解的。 當使用Spring的註解功能時, <cont
Spring boot非同步註解原始碼解析
一、例子 我們先來看下面這個Demo。 pom.xml中maven依賴: <parent> <gro
Spring註解解析之ConfigurationClassPostProcessor
概述 Spring中有各種註解,比如@Configuration、@Import、@ComponentScan、@Autowi
【Spring註解驅動開發】使用@Autowired@Qualifier@Primary三大註解自動裝配元件,你會了嗎?
## 寫在前面 > 【Spring專題】停更一個多月,期間在更新其他專題的內容,不少小夥伴紛紛留言說:冰河,你【Spring專題】是不是停更了啊!其實並沒有停更,只是中途有很多小夥伴留言說急需學習一些知識技能,以便於跳槽,哈哈,大家都懂得!所以,中途停更了一段時間,寫了一些其他專題的文章。現在,繼續更
【Spring註解驅動開發】AOP核心類解析,這是最全的一篇了!!
## 寫在前面 > 昨天二狗子讓我給他講@EnableAspectJAutoProxy註解,講到AnnotationAwareAspectJAutoProxyCreator類的原始碼時,二狗子消化不了了。這不,今天又來讓我給他講講AOP的核心類。那我們就開始吧! > > 關於 **冰河技術