用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;
}