【1】通过静态工厂方法来配置bean
静态工厂方法,直接调用某一个类的静态方法就可以返回bean的实例
class:指向静态工厂方法的全类名;
factory-method:指向静态工厂方法的名字;
constructor-arg:如果工厂方法需要传入参数,则使用constructor-arg来配置参数
<bean id="car1" class="com.web.factory.StaticCarFactory" factory-method="getCar" >
<constructor-arg value="Audi">
</constructor-arg>
</bean>
【2】通过实例工厂方法来配置bean
实例工厂的方法:先创建工厂实例,再调用其方法来获得需要的bean
<!-- 配置工厂的实例 -->
<bean id="carFactory" class="com.web.factory.InstanceCarFactory"></bean>
<!-- 获取实际需要的bean -->
<bean id="car2" factory-bean="carFactory" factory-method="getCar">
<constructor-arg value="Ford"></constructor-arg>
</bean>
【3】通过FactoryBean
工厂 Bean 跟普通Bean不同, 其返回的对象不是指定类的一个实例, 其返回的是该工厂 Bean 的 getObject 方法所返回的对象。
- 需要实现
FactoryBean<T>
接口 - 实现三个方法,getObject(),getObjectType(),isSingleton()