ApplicationContextAware 接口的作用
这个接口有什么用?
当一个类实现了这个接口(ApplicationContextAware)之后,这个类就可以方便获得ApplicationContext中的所有bean。换句话说,就是这个类可以直接获取spring配置文件中,所有有引用到的bean对象。
如何使用 ApplicationContextAware 接口
1、定义一个工具类,实现 ApplicationContextAware,实现 setApplicationContext方法
public class SystemContext implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@SuppressWarnings("rawtypes")
public static Object getBean(Object beanName) {
if (beanName instanceof Class) {
return applicationContext.getBean(((Class) beanName).getName());
} else {
return applicationContext.getBean(beanName.toString());
}
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
SystemContext.applicationContext = applicationContext;
}
}
2、在Spring配置文件中注册该工具类
一、因为spring要建立属于自己的容器,就必须要加载自己的配置文件。
这个时候,需要注册ContextLoaderListener或者这个类的子类。
在web.xml加上以下的信息:
|
1
2
3
|
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener> |
<!-- 初始化SystemContext,注入applicationContext --> <bean id="SystemContext" class="com.framework.system.engine.SystemContext" lazy-init="false"></bean>
3、编写方法进行使用
private static ShineApprovalService getShineApprovalService() {
return (ShineApprovalService) SystemContext.getBean(ShineApprovalServiceImpl.BEAN_NAME);
}
8703



被折叠的 条评论
为什么被折叠?



