IOC装配Bean(第二部分)

Spring框架Bean实例化的方式

提供了三种方式实例化Bean.
* 构造方法实例化:(默认无参数)
* 静态工厂实例化:
* 实例工厂实例化:

无参数构造方法的实例化

<!-- 默认情况下使用的就是无参数的构造方法. -->
    <bean id="bean1" class="cn.spring.demo2.Bean1"></bean>

package cn.spring.demo2;
/*
 * 使用无参数的构造方法实例化
 */
public class Bean1 {
    public Bean1(){};
}

静态工厂实例化

<!-- 静态工程实例化 -->
    <bean id="bean2" class="cn.spring.demo2.Bean2Factory"
        factory-method="getBean2"></bean>
package cn.spring.demo2;
/*
 * 使用静态工厂实例化
 */
public class Bean2 {

}
package cn.spring.demo2;

/*
 * Bean2的静态工程
 */
public class Bean2Factory {
    public static Bean2 getBean2() {
        System.out.println("静态工程或得bean2的方法……");
        return new Bean2();
    }
}

实例工厂实例化

<!-- 使用实例工程实例化 -->
    <bean id="bean3" factory-bean="bean3Factroy" factory-method="getBean3"></bean>
    <bean id="bean3Factroy" class="cn.spring.demo2.Bean3Factory"></bean>
package cn.spring.demo2;
/*
 * 使用实例工厂实例化
 */
public class Bean3 {

}
package cn.spring.demo2;

/**
 * 使用实例方法
 * 
 * @author NOP
 * 
 */
public class Bean3Factory {
    public Bean3 getBean3() {
        System.out.println("实例工厂得bean3的方法……");
        return new Bean3();
    }

}

测试类编写

package cn.spring.demo2;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class SprintTest2 {

    @Test
    // 无参数的构造方法实例化
    public void demo1() {
        ApplicationContext applicaionContext = new ClassPathXmlApplicationContext(
                "applicationContext.xml");
        Bean1 bean1 = (Bean1) applicaionContext.getBean("bean1");
        System.out.println(bean1);
    }

    @Test
    // 静态工厂实例化
    public void demo2() {
        ApplicationContext applicaionContext = new ClassPathXmlApplicationContext(
                "applicationContext.xml");
        Bean2 bean2 = (Bean2) applicaionContext.getBean("bean2");
        System.out.println(bean2);
    }

    @Test
    // 实例工程实例化
    public void demo3() {
        ApplicationContext applicaionContext = new ClassPathXmlApplicationContext(
                "applicationContext.xml");
        Bean3 bean3 = (Bean3) applicaionContext.getBean("bean3");
        System.out.println(bean3);
    }

}

猜你喜欢

转载自blog.51cto.com/4534309/2107567