使用工厂方法创建bean
除了直接在xml中通过放射直接创建bean,Spring还提供了使用工厂方法创建bean的功能。Spring支持两种模式提供bean。
1.静态工厂
2.实例工厂
一、静态工厂创建提供bean
1.1 静态工厂不需要实例化工厂本身,需要提供一个注入bean对象的方法,例如:getCar方法。注意该方法也必须是静态的,利用静态工厂方法定义的bean item种, class属性不在是bean的全类名, 而是静态工厂的全类名, 而且还需要指定工厂里的
getBean 静态方法名字和参数
1.2在xml中配置静态工厂
factory-method:指向静态的提供相应bean的方法
constructor-arg :对应提供bean函数的方法参数。
二、使用实例化工厂的方式创建bean
2.1 实例化一个工厂方法 首先需要创建一个实例工厂的bean,class指向实例工厂方法,创建一个工厂方法实例
**2.2 通过工厂方法实例提供指定的对象
factory-bean:指向工厂方法
factory-method:提供bean的方法
**
2.3 直接向getAudi索取指定的bean时,首先会创建carFactory,然后通过getCar方法获取bean对象
三、使用FactoryBean创建bean
3.1 首先创建一个Factory实现FactoryBean接口
3.2 实现getObject,getObjectType方法,getObject方法返回要创建的对象,在实际通过FactoryBean拿到对象时就是通过getObject方法,getObjectType指定要返回对象的类型
3.3 在xml中配置factory对应的bean
3.4 使用FactoryBean获取bean的实例