2010-01-04 30 views
6

我們知道在Spring中,<bean>有一個屬性「primary」來表示一個bean是第一個候選者,如果有多個bean可用於自動裝配屬性。我不能使用註解來表示一個bean是一個主要的bean

但現在我所有的bean定義都是使用@ Component/@ Service等聲明的,我無法找到可用於聲明bean的相應「主」屬性。

請告訴我該如何做到這一點,謝謝。

回答

22

在Spring 3.0中,您使用@Primary

表示一個bean應給予優先 當多個候選 有資格自動裝配一個 單值的依賴。如果在 候選者中確實存在 一個「主」豆,則它將是自動裝配的 值。

可以直接使用任何類,或者使用Component間接註釋的 或使用Bean註釋的方法使用 。

除非使用組件掃描 ,否則在課堂級別使用小學生 將無效。如果通過XML聲明瞭帶主註釋的 類,則主註釋元數據將被忽略,並且 <bean primary="true|false"/>將被改爲 。

請參閱ref docs

+0

謝謝我已升級到Spring 3.0,它現在工作正常。 – Matt 2010-01-06 03:29:42

+0

看起來像您的ref doc已經死亡。這可能會更好:http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/annotation/Primary.html – 2015-02-05 00:06:29

+0

@jb。謝謝,修正 – skaffman 2015-02-05 01:57:48

4

@Primary註釋只有在使用Spring 3.0時纔有效。

在Spring 2.5中,沒有對主屬性的等效註釋。您必須使用@Qualifier註釋來指定要注入的bean。另一個選擇是爲了相同的目的定義您自己的限定符註釋。

查看docs瞭解更多信息。

相關問題