簡介
spring容器在創(chuàng)建當前bean時,會去調(diào)用接口BeanFactoryAware擴展點。BeanFactoryAware有個方法setBeanFactory,入?yún)⑹莃eanFactory。
重寫setBeanFactory方法,能夠獲取到spring容器,進而從spring容器獲取指定bean。如果該bean尚未創(chuàng)建,會觸發(fā)bean的創(chuàng)建流程。
示例
@Service
public class BeanFactoryUtils implements BeanFactoryAware {
private BeanFactory beanFactory;
@Override
public void setBeanFactory(BeanFactory beanFactory) {
this.beanFactory = beanFactory;
}
public <T> T getBean(String beanName) {
return (T) beanFactory.getBean(beanName);
}
}