factorybean是spring的一个接口,要注意spring还有一个接口叫beanfactory
不要把两者弄混了
当你用一个类去实现这个factorybean接口时,spring会自动识别这个类是工厂类
然后直接用这个类里面的 getObject() 去创建对象,所以我们在使用factorybean这个接口的时候,就不用在bean标签里面写factory-bean ,factory-method ,constructor-arg这些东西了
使用方法:
第一步:
用汽车类去实现factorybean接口
在getObject方法中创建汽车对象,并为汽车的属性赋值,返回值是汽车对象
public class carfactory implements FactoryBean<Car>{
@Override
public Car getObject() throws Exception {
Car car=new Car();
car.setAge(12);
car.setColor("red");
car.setId(UUID.randomUUID().toString());
car.setName("奔驰");
return car;
}
@Override
public Class<?> getObjectType() {
// TODO Auto-generated method stub
return Car.class;
}
@Override
public boolean isSingleton() {
// TODO Auto-generated method stub
return false;
}
}
第二步:
在xml文件里面写bean标签,
这里的bean标签及其简单,factory-bean ,factory-method ,constructor-arg这些东西了,spring会自动识别这是一个工厂类,并且getObject就是造对象的方法
<bean id="car02" class="bean.carfactory">
</bean>