Spring中ApplicationContextAware接口使用理解
程序员文章站
2022-05-25 16:13:10
...
一、接口介绍
当一个类实现了这个接口(ApplicationContextAware)之后,这个类就可以方便获得ApplicationContext中的所有bean。换句话说,就是这个类可以直接获取spring配置文件中,所有引用到的bean对象。
二、接口使用
1.编写工具类
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
/**
* Created by zl on 2018/7/7.
*/
public class BeanFactoryUtil implements ApplicationContextAware {
protected static ApplicationContext ctx = null;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
ctx = applicationContext;
}
public static Object getBean(String beanId) {
return ctx.getBean(beanId);
}
}
2.在applicationContext.xml中注册BeanFactoryUtil工具类
<bean id="beanFactoryUtil" class="com.boss.utils.BeanFactoryUtil"/>
3.测试
@Test
public void test() {
// 加载applicationContext.xml(模拟启动web服务)
new ClassPathXmlApplicationContext("applicationContext.xml");
UserDao userDaoImpl = (UserDao) BeanFactoryUtil.getBean("userDaoImpl");
userDaoImpl.sayHello();
}