Hierarchical Bean Factory Usage : IoC Factory Beans « Spring « Java






Hierarchical Bean Factory Usage

/*
Pro Spring
By Rob Harrop
Jan Machacek
ISBN: 1-59059-461-4
Publisher: Apress
*/


///////////////////////////////////////////////////////////////////////////////////////
//File: beans.xml

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    <!-- hierarchical bean factories -->
    <bean id="target1" class="SimpleTarget">
        <property name="val">
            <ref bean="injectBeanParent"/>
        </property>
    </bean>
    
    <bean id="target2" class="SimpleTarget">
        <property name="val">
            <ref local="injectBean"/>
        </property>
    </bean>
    
    <bean id="target3" class="SimpleTarget">
        <property name="val">
            <ref parent="injectBean"/>
        </property>
    </bean>
    
    <bean id="injectBean" class="java.lang.String">
           <constructor-arg>
               <value>Bean In Child</value>
           </constructor-arg>
    </bean>
</beans>


///////////////////////////////////////////////////////////////////////////////////////
//File: parent.xml
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    <bean id="injectBean" class="java.lang.String">
           <constructor-arg>
               <value>Bean In Parent</value>
           </constructor-arg>
    </bean>
    <bean id="injectBeanParent" class="java.lang.String">
           <constructor-arg>
               <value>Bean In Parent</value>
           </constructor-arg>
    </bean>
</beans>    


///////////////////////////////////////////////////////////////////////////////////////
public class SimpleTarget {

    private String val;
    
    public void setVal(String val) {
        this.val = val;
    }
    
    public String getVal() {
        return val;
    }
}
///////////////////////////////////////////////////////////////////////////////////////
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.FileSystemResource;

public class HierarchicalBeanFactoryUsage {

    public static void main(String[] args) {
        BeanFactory parent = new XmlBeanFactory(new FileSystemResource(
                "build/parent.xml"));
        BeanFactory child = new XmlBeanFactory(new FileSystemResource(
                "build/beans.xml"), parent);

        SimpleTarget target1 = (SimpleTarget) child.getBean("target1");
        SimpleTarget target2 = (SimpleTarget) child.getBean("target2");
        SimpleTarget target3 = (SimpleTarget) child.getBean("target3");

        System.out.println(target1.getVal());
        System.out.println(target2.getVal());
        System.out.println(target3.getVal());
    }
}

           
       








HierarchicalBeanFactoryUsage.zip( 1,198 k)

Related examples in the same category

1.Message Digest Example
2.Method Replacement Example
3.Property Editor Bean
4.Logging Bean Example
5.Custom Editor Example
6.Accessing Factory Beans