1. 程式人生 > >Spring註解解釋(@Primary、@Qualifier)

Spring註解解釋(@Primary、@Qualifier)

@Primary/@Qualifier

當你一個介面的實現類有多個的時候,你通過@Component來註冊你的實現類有多個,但是在注入的時候使用@Autowired

這樣問題就來了,Spring就不知道你注入哪個,那現在就可以通過下面兩個辦法解決:

  • @Primary 優先考慮,優先考慮被註解的物件注入
  • @Qualifier 名字宣告,聲明後對名字進行使用

@Qualifier 看看官網怎麼用

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"
>
<context:annotation-config/> <bean class="example.SimpleMovieCatalog"> <qualifier value="main"/> <!-- inject any dependencies required by this bean --> </bean> <bean class="example.SimpleMovieCatalog"> <qualifier value
="action"/>
<!-- inject any dependencies required by this bean --> </bean> <bean id="movieRecommender" class="example.MovieRecommender"/> </beans>

上面聲明瞭,下面用

public class MovieRecommender {

    @Autowired
    @Qualifier("main")
    private MovieCatalog movieCatalog;

    // ...

}

理解

註解 備註
@Primary 優先方案,被註解的實現,優先被注入
@Qualifier 先聲明後使用,相當於多個實現起多個不同的名字,注入時候告訴我你要注入哪個

相關推薦

Spring註解解釋@Primary@Qualifier

@Primary/@Qualifier 當你一個介面的實現類有多個的時候,你通過@Component來註冊你的實現類有多個,但是在注入的時候使用@Autowired 這樣問題就來了,Sp

JAVA WEB快速入門之通過一個簡單的Spring專案瞭解Spring的核心AOPIOC

接上篇《JAVA WEB快速入門之從編寫一個JSP WEB網站了解JSP WEB網站的基本結構、除錯、部署》,通過一個簡單的JSP WEB網站了解了JAVA WEB相關的知識,比如:Servlet、Fitler、Listner等,這為後面搭建基於SSM的框架奠定了基礎知識,當然光了解JSP相關的知識還不行,我

TensorFlow的序列模型程式碼解釋RNNLSTM

  1、學習單步的RNN:RNNCell、BasicRNNCell、BasicLSTMCell、LSTMCell、GRUCell (1)RNNCell 如果要學習TensorFlow中的RNN,第一站應該就是去了解“RNNCell”,它是TensorFlow中實現RNN的基本單元,每個RNNC

關於@Profile@Conditional@Primary@Qualifier及@Scope等實現高階裝配的spring註解

1、關於@Profile註解的介紹 @Profile註解主要用在針對不同環境而條件選擇的注入bean 在開發過程中由於環境的不同,我們可能在針對某些功能,需要開發不同的實現,然而在某種環境中,只能啟用其中一種實現,其他的實現處於不啟用的狀態。這個時候我們在需要建立的bean上新增@Profi

spring註解使用@Configuration @Bean@ComponentScan@TypeFilter

  1、spring的框架: spring的核心是控制反轉(IOC)和橫向切面(AOP) 核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要元件是 BeanFactory,它是工廠模式的實現。BeanFactory 使用控制

spring複習註解使用@Configuration @Bean@ComponentScan@TypeFilter

1、spring的框架: spring的核心是控制反轉(IOC)和橫向切面(AOP) 2、spring註解開發 spring從3.0開始支援註解開發,通過註解方式代替xml定義bean檔案,例: (1)xml定義bean檔案: <

屬性注入之註解@Autowired@Qualifier@Resource

@Resource和@Autowired都是做bean的注入時使用,其實@Resource並不是Spring的註解,它的包是javax.annotation.Resource,需要匯入,但是Spring支援該註解的注入。 1、共同點 兩者都可以寫在欄位和setter方

05 Spring Aop例項AOP 如此簡單@Aspect@Around 註解方式配置

轉載請註明來源 賴賴的部落格 導語 沒有什麼是不可以改變的,換個角度看世界,截然不同! IoC相關的基本內容告一段落,本次介紹Spring的第二個特性,AOP,面向切面程式設計,術語聽起來比較不容易理解,沒關係,一切盡在例項中,讓我們看一個簡單

構建微服務架構Spring Cloud:服務註冊與發現EurekaConsul

comm 簡介 foundry 架構 eas args 包含 什麽 其他 Spring Cloud簡介 Spring Cloud是一個基於Spring Boot實現的雲應用開發工具,它為基於JVM的雲應用開發中涉及的配置管理、服務發現、斷路器、智能路由、微代理、控制總線、全

Spring Boot + Spring Cloud 實現許可權管理系統 後端篇十九:服務消費RibbonFeign

技術背景 上一篇教程中,我們利用Consul註冊中心,實現了服務的註冊和發現功能,這一篇我們來聊聊服務的呼叫。單體應用中,程式碼可以直接依賴,在程式碼中直接呼叫即可,但在微服務架構是分散式架構,服務都執行在各自的程序之中,甚至部署在不同的主機和不同的地區。這個時候就需要相關的遠端呼叫技術了。 Spring

Spring Boot + Spring Cloud 實現許可權管理系統 後端篇二十:服務熔斷HystrixTurbine

線上演示 演示地址:http://139.196.87.48:9002/kitty 使用者名稱:admin 密碼:admin 雪崩效應 在微服務架構中,由於服務眾多,通常會涉及多個服務層級的呼叫,而一旦基礎服務發生故障,很可能會導致級聯故障,進而造成整個系統不可用,這種現象被稱為服務雪崩效應。服務雪崩

Spring Boot + Spring Cloud 實現許可權管理系統 後端篇二十二:鏈路追蹤SleuthZipkin

線上演示 演示地址:http://139.196.87.48:9002/kitty 使用者名稱:admin 密碼:admin 技術背景 在微服務架構中,隨著業務發展,系統拆分導致系統呼叫鏈路愈發複雜,一個看似簡單的前端請求可能最終需要呼叫很多次後端服務才能完成,那麼當整個請求出現問題時,我們很難得知到

spring cloudrabbitmq

用Spring Cloud Bus實現通知微服務架構的配置檔案的更改 1.安裝好rabbitMq並啟動 2.修改config-client專案,引入spring-cloud-starter-bus-amqp和spring-boot-starter-actuator依賴 3.修改boots

spring cloud斷路器

在微服務架構中,根據業務來拆分成一個個的服務,服務與服務之間可以相互呼叫(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign來呼叫。為了保證其高可用,單個服務通常會叢集部署。由於網路原因或者自身的原因,服務並不能保證100%可用,如果單個服務出現問題,呼叫這

spring-mybatis MapperScannerConfigurer,註解方式 資料庫持久化四

主流方式 xml配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://ww

spring 註解事務 spring事務二

xml配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.s

Spring 註解配置2——@Autowired

Spring 註解配置(2)——@Autowired 轉自- 部落格地址:http://www.cnblogs.com/caoyc/p/5626365.html  @Autowired 註釋,它可以對類成員變數、方法及建構函式進行標註,完成自動裝配的工作。 通過 @Aut

spring cloud gateway實現限流

限流一般有兩個實現方式,令牌桶和漏桶 金牌桶是初始化令牌(容器)的個數,通過拿走裡邊的令牌就能通過, 沒有令牌不能報錯,可以設定向容器中增加令牌的速度和最大個數 漏桶是向裡邊放入請求,當請求數量達到最大值後,丟棄,漏桶中的資料以一定速度流出,沒有則不流出 金牌桶實現方式如下: pom <dependen

Spring Cloud構建微服務架構:服務註冊與發現EurekaConsul

Spring Cloud簡介 Spring Cloud是一個基於Spring Boot實現的雲應用開發工具,它為基於JVM的雲應用開發中涉及的配置管理、服務發現、斷路器、智慧路由、微代理、控制匯流排、全域性鎖、決策競選、分散式會話和叢集狀態管理等操作提供了一種簡單的開發方式。 Spring Cloud包含

手寫Spring註解事務利用AOP技術 + 註解 + Spring程式設計式事務

1.參考下面的文章搭建一個無事務管理的SSM操作資料庫的框架       Spring 使用Druid資料來源 整合 Mybatis 2.AOP技術參考       AOP技術應用實現 3.第一步首先實現Sprin