在开发中需要动态调用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>