Spring Bean的实例化的三种方式
方式一:使用类构造器实例化(默认方式):
在applicationContext文件中
```
<!--第一种:无参构造器的方式-->
<bean id="bean1" class="com.imoo.ioc.demo2.Bean1"/>
```
在Bean中
```
public class Bean1 {
public Bean1() {
System.out.println("Bean1被实例化了");
}
}
public void demo1() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
Bean1 bean1 =(Bean1) applicationContext.getBean("bean1");
}
```方式二:使用静态工厂方法实例化(简单工厂模式):
注意:此种方式中在配置中多一个factory-method,切记
在applicationContext文件中
<!--第二种:静态工厂的方式-->
<bean id="bean2" class="com.imoo.ioc.demo2.Bean2Factory" factory-method="creatBean2"/>
public class Bean2 {
}在代码中
public class Bean2 {
}
public class Bean2Factory {
public static Bean2 creatBean2() {
System.out.println("Bean2Factory方法已经执行了");
return new Bean2();
}
}
public void demo2() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
Bean2 bean2 =(Bean2) applicationContext.getBean("bean2");
}
方式三:使用实例工厂方法进行实例化
注意:与第二种方式不同的点是:bean工厂中方法不是static,在xml中要先写factory的路径,然后配置bean,因为静态的可以直接用类名点调用
在applicationContext文件中
<!--第三种:实例工厂的方式-->
<bean id="bean3factory" class="com.imoo.ioc.demo2.Bean3Factory"/>
<bean id="bean3" factory-bean="bean3factory" factory-method="creatBean3"/>在代码中:
public class Bean3 {
}
public class Bean3Factory {
public Bean3 creatBean3() {
System.out.println("bean3的工厂被执行了");
return new Bean3();
}
}
public void demo3() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
Bean3 bean3 =(Bean3) applicationContext.getBean("bean3");
}


京公网安备 11010502036488号