Spring 中有两种类型的 Bean, 一种是普通Bean, 另一种是工厂Bean, 即FactoryBean.
工厂 Bean 跟普通Bean不同, 其返回的对象不是指定类的一个实例, 其返回的是该工厂 Bean 的 getObject 方法所返回的对象
相关代码:
Car.java
private String brand; private double price;
CarFactoryBean.java
public class CarFactoryBean implements FactoryBean<Car>{ private String brand; public void setBrand(String brand) { this.brand = brand; } //返回bean的对象 @Override public Car getObject() throws Exception { return new Car(brand,500000); } //返回bean的类型 @Override public Class<?> getObjectType() { return Car.class; } @Override public boolean isSingleton() { return true; } }
bean-factorybean.xml
<!-- 通过FactoryBean来配置bean的实例 class:指向FactoryBean的全类名 property:配置的时FactoryBean的属性 但实际返回的实例却是FactoryBean的getObject()方法的实例 --> <bean id="car" class="com.yslf.factorybean.CarFactoryBean"> <property name="brand" value="BMW"></property> </bean>
时间: 2024-11-08 18:58:06