2013-05-20 107 views
0

我使用Mule/Spring XML來定義一組spring bean。Spring之間的可見性:bean vs spring:Spring中的bean XML config

我可以毫不春包木窗他們創建使用下面的XML一個bean:豆類元素,像這樣:

<spring:bean id="myFactoryBean" class="org.test.MyFactoryBean" /> 

但如果我嘗試引用另外一個bean這是行不通的,除非我換的兩個bean同樣的春豆:像這樣的元素:

<spring:beans> 
    <spring:bean id="myFactoryBean" class="org.test.MyFactoryBean" /> 

     <spring:bean id="MyBean" class="org.test.MyBean" c:factory-ref="myFactoryBean" /> 
</spring:beans> 

爲什麼我必須將它們包裝起來才能讓對方看到對方?這是一個通用的Spring XML要求嗎?

回答

3

我認爲問題是c命名空間只能在spring:beans元素的範圍內識別。這同樣適用於p命名空間和所有其他Spring命名空間,如contextutil

如果你採用了經典的constructor說法取代c:factory-ref,它應該工作,即使spring:bean s的不是由spring:beans元素包裹。

但是,我個人建議,作爲一種良好的做法,始終讓您的spring:bean位於spring:beans包裝元素中。它保持整齊組織,並啓用所有Spring命名空間。

相關問題