Bootstrap

Spring bean参考示例

在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/

;