您的位置:首页 > 编程语言 > Java开发

Spring bean reference example

2015-08-21 14:25 381 查看
In Spring, beans can “access” to each other by specify the bean references in the same or different bean configuration file.

1. Bean in different XML files

If you are referring to a bean in different XML file, you can reference it with a ‘
ref
‘ tag, ‘
bean
‘ attribute.

<ref bean="someBean"/>


In this example, the bean “
OutputHelper
” declared in ‘
Spring-Common.xml
‘ can access to other beans in ‘
Spring-Output.xml
‘ – “
CsvOutputGenerator
” or “
JsonOutputGenerator
“, by using a ‘
ref
’ attribute in
property
tag.

File : Spring-Common.xml

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> 
<bean id="OutputHelper" class="com.mkyong.output.OutputHelper">
<property name="outputGenerator" >
<ref bean="CsvOutputGenerator"/>
</property>
</bean>

</beans>


File : Spring-Output.xml

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> 
<bean id="CsvOutputGenerator" class="com.mkyong.output.impl.CsvOutputGenerator" />
<bean id="JsonOutputGenerator" class="com.mkyong.output.impl.JsonOutputGenerator" />

</beans>


2. Bean in same XML file

If you are referring to a bean in same XML file, you can reference it with ‘
ref
‘ tag, ‘
local
‘ attribute.

<ref local="someBean"/>


In this example, the bean “
OutputHelper
” declared in ‘
Spring-Common.xml
‘ can access to each other “
CsvOutputGenerator
” or “
JsonOutputGenerator
“.

File : Spring-Common.xml

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> 
<bean id="OutputHelper" class="com.mkyong.output.OutputHelper">
<property name="outputGenerator" >
<ref local="CsvOutputGenerator"/>
</property>
</bean>

<bean id="CsvOutputGenerator" class="com.mkyong.output.impl.CsvOutputGenerator" />
<bean id="JsonOutputGenerator" class="com.mkyong.output.impl.JsonOutputGenerator" />

</beans>


Conclusion

Actually, the ‘
ref
’ tag can access to a bean either in same or different XML files, however, for the project readability, you should use the ‘
local
’ attribute if you reference to a bean which declared in the same XML file.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring