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);
}
}