我正在使用外部庫,它要求我使用XML Bean定義對其進行配置;在Bean定義中,我需要從我的項目中爲Bean提供一個外部類。我正在使用組件掃描的Spring註釋。在XML Bean定義中引用帶註釋的Spring組件
如何在XML Bean定義中引用帶批註的Bean?
有沒有其他方法可以創建XML Bean定義?
詳情:春3.0.7
我正在使用外部庫,它要求我使用XML Bean定義對其進行配置;在Bean定義中,我需要從我的項目中爲Bean提供一個外部類。我正在使用組件掃描的Spring註釋。在XML Bean定義中引用帶註釋的Spring組件
如何在XML Bean定義中引用帶批註的Bean?
有沒有其他方法可以創建XML Bean定義?
詳情:春3.0.7
不管它是怎麼產生(基於XML或annotation-元數據),每個bean的下一個唯一的名稱應用程序上下文結束。
如果您剛剛標註有@Component
或其衍生物類,不說明任何名稱,默認的命名方案將應用和bean名稱將是你的類名以小寫的第一個字符:ClassName => "className"
。
考慮到這一點,如果你需要在一個XML bean定義來注入豆,你不喜歡它,在你的情況下其它bean:
<bean id="someBean" class="SomeClass">
<property name="someProp" ref="className"/><!-- to stick to the above example -->
</bean>
由於您使用XML註釋混合,應用程序上下文將能夠正確定位「className」bean。
@Service註釋帶有一個可選的String值,可用於給該bean一個你選擇的名稱。例如,如果您的自定義bean的樣子:
@Service("mySpecialName")
public class MyClass { ... }
那麼你的XML可以有:
<bean class="com.someone.else.library.SomeClass">
<property name="someProp" ref="mySpecialName"/>
</bean>
確保選中添加下面的代碼在XML文件中
<context:component-scan base-package="" />
<context:annotation-config />
@Mike已經提到他正在使用註釋bean。 –