FactoryBean 接口中定義了三個(gè)方法
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">
? ?當(dāng)調(diào)用getBean("car")時(shí)
1.spring的反射機(jī)制會(huì)發(fā)現(xiàn)這個(gè)CarFactoryBean實(shí)現(xiàn)了FactoryBean接口
2.spring容器會(huì)調(diào)用CarFactoryBean#getObject()① 返回 工廠類創(chuàng)建的對(duì)象
**如果想要通過getBean()返回CarFactoryBean工廠本身的實(shí)例, 可以加"&"
例如: getBean("&car")