用BeanFactoryAware接口,用BEAN的名称来获取BEAN对象

用BeanFactoryAware接口,用BEAN的名称来获取BEAN对象

applicationContext-beans.xml
<bean id= "beanFactoryHelper"  class = "com.cyjch.base.BeanFactoryHelper" />
BeanFactoryHelper.java
package com.cyjch.base;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.BeanFactoryAware;
public class BeanFactoryHelper implements BeanFactoryAware {
    private static BeanFactory beanFactory; //BEAN工厂
    @Override
    public void setBeanFactory(BeanFactory f) throws BeansException {
        this.beanFactory = f; 
    }
    public static BeanFactory getBeanfactory() {   
        return beanFactory;   
    }
}
  其它的实现类(可以继承BeanFactoryHelper并实现多个接口)
public class PeixunServiceImpl extends BeanFactoryHelper implements IPeixunService,Serializable{
    BeanFactory bf = BeanFactoryHelper.getBeanfactory();//获取工厂
    ...
    IPeixunDao peixunDAO = (PeixunDaoImpl) bf.getBean("peixunDao");//通过BEAN名称取BEAN
    IUserDao userdao = (UserDaoImpl) bf.getBean("userDao");
 
    XxxService xxxService;
    getter/setter;
    XxxDao xxxDao;
    getter/setter;
}
  
 

猜你喜欢

转载自wm920.iteye.com/blog/2181334