在Spring中,通过在相同或不同的bean配置文件中指定bean引用,bean可以彼此“访问”。
1.不同XML文件中的Bean
如果要在其他XML文件中引用bean,则可以使用' ref
'标记,' bean
'属性来引用它。
<ref bean="someBean"/>
在此示例中,在Spring-Common.xml
声明的bean“ OutputHelper ”可以通过在属性标签中使用“ ref”属性来访问“ Spring-Output.xml
”-“ CsvOutputGenerator ”或“ JsonOutputGenerator ”中的其他bean。 。
文件: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>
档案: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.相同XML文件中的Bean
如果要在同一XML文件中引用bean,则可以使用' ref
'标签,' local
'属性来引用它。
<ref local="someBean"/>
在此示例中,在“ Spring-Common.xml
Common.xml ”中声明的bean“ OutputHelper ”可以相互访问“ CsvOutputGenerator ”或“ JsonOutputGenerator ”。
文件: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>
结论
实际上,“ ref”标记可以访问相同或不同XML文件中的bean,但是,为了项目可读性,如果引用的是在同一XML文件中声明的bean,则应使用“ local”属性。
标签: 春天
翻译自: https://mkyong.com/spring/spring-bean-reference-example/