还有一种实例化Bean的方式是采用是实例工厂,此种方式的工厂类中不再使用静态方法创建Bean实例,而是采用直接创建Bean实例的方式,同时在配置文件中,需要实例化的Bean也并不是通过ckass属性直接指向的实例化类,而是通过factory-bean属性指向配置的实例化工厂,然后使用factory-method属性确定使用工厂中的哪个方法,下面通过一个案例来演示实例化工厂方式的使用。
1、在chapter02项目的src目录下,创建一个com.itheima.instance.factory包,在包中创建一个Bean2类,不需添加任何方法:
package com.itheima.instance.factory;
public class Bean3 {
}
2、在com.itheima.instance.factory包中,创建工厂类MyBeanFactory,在类中使用默认无参构造方法输出“bean3工厂实例化中”语句,如下面代码所示:
package com.itheima.instance.factory;
public class MyBean3Factory {
public MyBean3Factory() {
System.out.println("bean3共厂实例化中");
}
//创建Bean3的实例化方法
public Bean3 createBean() {
return new Bean3();
}
}
3、在com.itheima.instance.factory包中,创建Spring配置文件beans3.xml,设置相关配置后如下面代码所示: