Monday, October 22, 2012

Reference Injection


So far we have only injected constructor and property values with static values, which is useful if you want to eliminate configuration files. Values can also be injected by reference  one bean definition can be injected into another. To do this, you use the constructor-arg or property's ref attribute instead of the value attribute. The ref
attribute then refers to another bean definition's id.

In the following example, the first bean definition is a java.lang.String with the id spring Message. It is injected into the second bean definition by reference using the property element's ref attribute.

ReferenceSetterMessageTest-context.xml

<?xml version="1.0" encoding="UTF-8"?>
<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.xsd">
<bean id="springMessage" class="java.lang.String">
  <constructor-arg value="Spring is fun." />
</bean>
<bean id="message" class="org.springbyexample.di.xml.SetterMessage">
  <property name="message" ref="springMessage" />
</bean>
</beans>

No comments:

Post a Comment