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

  

原文地址:https://www.cnblogs.com/cyjch/p/2340417.html