FactoryBean 接口中定义了三个方法
T getObject()
boolean isSingleton()
Class<?> getObjectType()
若
public class CarFactoryBean implement FactoryBean<Car> {
private String carInfo;
public String getCarInfo() {}
public String setCarInfo() {}
public Car getObject() {} ①
public Class<Car> getObjectType() {} ②
public boolean isSingleton() {} ③
}
在spring中配置Car Bean
<bean id="car" class="com.xx.xx.CarFactoryBean">
当调用getBean("car")时
1.spring的反射机制会发现这个CarFactoryBean实现了FactoryBean接口
2.spring容器会调用CarFactoryBean#getObject()① 返回 工厂类创建的对象
**如果想要通过getBean()返回CarFactoryBean工厂本身的实例, 可以加"&"
例如: getBean("&car")