BeanFactoryAware 接口在Spring 中的作用
实现 BeanFactoηAware 接口的 bean 可以直接访问 Spring 容器,被容器创建以后,它会拥有一个指向 Spring 容器的引用,可以利用该bean根据传入参数动态获取被spring工厂加载的bean,实现方法如下:@Componet("beanContextUtil ")public Class BeanContextUtil implements Bea
实现 BeanFactoηAware 接口的 bean 可以直接访问 Spring 容器,被容器创建以后,它会拥有一个指向 Spring 容器的引用,可以利用该bean根据传入参数动态获取被spring工厂加载的bean,实现方法如下:
@Componet("beanContextUtil ")
public Class BeanContextUtil implements BeanFactoryAware{
private static BeanFactory beanFactory;
public static void setContextBean(BeanFactory bf){
this.beanFactory=bf;
}
public static Object getContextBean(String beanName){
return beanFactory.getBean(beanName);
}
@Override
public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
BeanContextUtil.setContextBean(beanFactory);
}
public static Object getBean(String beanName){
return BeanContextUtil.getContextBean(beanName);
}
}
在service 或者 controller /filter 中使用
private OrderService orderService=(OrderService)BeanContextUtil.getBean("orderService");
更多推荐
所有评论(0)