2011-10-25 28 views
1

我有一個接口它的2實現。我通過@Component註釋了兩個實現。如何將它們中的一個指定爲缺省bean,默認情況下,將使用@Autowired進行注入。默認自動裝有@Component

感謝

回答

2

使用@Primary標註上,你認爲的優先級更高的豆。

從DOC

表示一個bean應當優先考慮當多個 候選資格自動裝配一個單值的依賴性。如果 只有一個「主要」bean存在於候選者中,它將是自動裝配值 。

可用於任何直接或間接使用 註解的類或用Bean註釋的方法。

除非使用 正在使用組件掃描,否則在課堂級別使用Primary將不起作用。如果通過XML聲明的主要註釋類是 ,則主要註釋元數據將被忽略,並且<bean primary="true|false"/>會被重視。

+0

謝謝。不幸的是,我們的項目使用spring 2.5。所以看來我必須使用Qualifier:'( –

0

自動裝配作品「按類型」,意味着它可以在一個bean匹配時自動裝載。當多個bean匹配時,使用Autowired + Qualifier註釋。限定符會調用自動裝配的bean的名稱。

這意味着當你聲明組件時,你也需要命名它們。