SimpleBean Init Method : IoC Init Beans « Spring « Java






SimpleBean Init Method


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



///////////////////////////////////////////////////////////////////////////////////////
//File: initMethod.xml
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    <bean id="simpleBean1" class="SimpleBean" init-method="init">
        <property name="name">
            <value>Joe Wang</value>
        </property>
        <property name="age">
            <value>100</value>
        </property>
    </bean>
    <bean id="simpleBean2" class="SimpleBean" init-method="init">
        <property name="age">
            <value>100</value>
        </property>
    </bean>
    <bean id="simpleBean3" class="SimpleBean" init-method="init">
        <property name="name">
            <value>Joe Wang</value>
        </property>
    </bean>
</beans>

///////////////////////////////////////////////////////////////////////////////////////
import org.springframework.beans.factory.BeanCreationException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.FileSystemResource;

public class SimpleBean {

    private static final String DEFAULT_NAME = "Luke Skywalker";

    private String name = null;

    private int age = Integer.MIN_VALUE;

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void init() {
        System.out.println("Initializing bean");

       if (name == null) {
            System.out.println("Using default name");
            name = DEFAULT_NAME;
        }

        if (age == Integer.MIN_VALUE) {
            throw new IllegalArgumentException(
                    "You must set the age property of any beans of type " + SimpleBean.class);
        }
    }

    public String toString() {
        return "Name: " + name + "\nAge: " + age;
    }

    public static void main(String[] args) {
        BeanFactory factory = new XmlBeanFactory(new FileSystemResource(
                "build/initMethod.xml"));

        SimpleBean simpleBean1 = getBean("simpleBean1", factory);        
        SimpleBean simpleBean2 = getBean("simpleBean2", factory);
        SimpleBean simpleBean3 = getBean("simpleBean3", factory);
    }

    private static SimpleBean getBean(String beanName, BeanFactory factory) {
        try {
            SimpleBean bean =(SimpleBean) factory.getBean(beanName);
            System.out.println(bean);
            return bean;
        } catch (BeanCreationException ex) {
            System.out.println("An error occured in bean configuration: "
                    + ex.getMessage());
            return null;
        }
    }

}
           
       








SimpleBean-Init-Method.zip( 1,197 k)

Related examples in the same category

1.Lazy Init Demo
2.Init Interface