通过ApplicationContextAware获取bean

来源:互联网 发布:知乎 常凯申 真实身份 编辑:程序博客网 时间:2024/06/01 22:08

在开发中需要动态调用Spring Bean ,为了避免Spring的多次加载,可以通过创建一个实现了org.springframework.context.ApplicationContextAware接口的类,同时在Spring配置文件中定义这个Bean,然后在web.xml文件中添加ContextLoaderListener来实现了org.springframework.context.ApplicationContextAware接口的类。
具体步骤如下:
一、创建一个实现了org.springframework.context.ApplicationContextAware接口的类

public class SpringBeanUtil implements ApplicationContextAware{public static ApplicationContext applicationContext=null;public static ApplicationContext getApplicationContext(){return applicationContext;}public static Object getBean(String beanId){return applicationContext.getBean(beanId);}public void setApplicationContext(ApplicationContext arg0)throws BeansException {applicationContext=arg0;}}

二、在Spring配置文件中配置

<bean id="springBeanUtil" class="com.yourobject.util.SpringBeanUtil">

三、在web.xml配置文件中添加

<context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/classes/applicationContext.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>




0 0
原创粉丝点击