spring bean的三种管理方式·

时间:2021-06-28 20:47:28

1.无参构造函数

1.xml文件配置内容
<!--无参构造函数-->
<bean id="bean1" class="com.imooc.ioc.demo2.Bean1"></bean>
2.无参的构造函数
public class Bean1 {
public Bean1(){
System.out.println("bean1被实例化");
}
}
3.测试方法
public void demo1(){
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
Bean1 bean1=(Bean1)applicationContext.getBean("bean1");
}
//会输出结果: bean1被实例化

2.静态工厂方法

1.Bean方法
public class Bean2 { } 2.静态工厂方法 public class Bean2Factory { public static Bean2 createBean2(){
System.out.println("已经执行");
return new Bean2();
}
} 3.测试方法
public void demo2(){
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
Bean2 bean2=(Bean2)applicationContext.getBean("bean2");
}
4.配置文件
<bean id="bean2" class="com.imooc.ioc.demo2.Bean2Factory" factory-method="createBean2"></bean>
 

3.实例化工厂

1.Bean方法
public class Bean3 { } 2.Bean工厂方法
public class Bean3Factory {
public Bean3 createBean3(){
System.out.println("实例工厂");
return new Bean3();
} } 3.测试方法 public void demo3(){
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
Bean3 bean3=(Bean3)applicationContext.getBean("bean3");
}
4.配置文件
<bean id="bean3Factory" class="com.imooc.ioc.demo2.Bean3Factory"></bean>
<bean id="bean3" factory-bean="bean3Factory" factory-method="createBean3"></bean>
 //先配置工厂类的bean 再调用

实例化工厂和静态工厂的区别: 静态工厂必须提供静态方法