有时在工具类中需要使用到注入的bean。这时要在工具类初始化的时候去通过配置文件去读取bean服务。
1、第一步,在web.xml中加入
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
WEB-INF/applicationContext.xml
</param-value>
</context-param>
2、在applicationContext.xml中注入bean
<bean id="SpringContextUtil" class="com.sunrise.web.thread.SpringContextUtil" scope="singleton"></bean>
3、附上类
package com.sunrise.web.thread;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
public class SpringContextUtil implements ApplicationContextAware{
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext)throws BeansException {
if(SpringContextUtil.applicationContext == null){
SpringContextUtil.applicationContext = applicationContext;
}
}
public static ApplicationContext getApplicationContext(){
return applicationContext;
}
public static Object getBean(String name){
return getApplicationContext().getBean(name);
}
public static <T>T getBean(Class<T> clazz){
return getApplicationContext().getBean(clazz);
}
}
4、在工具类构造方法中加入
ApplicationContext appCtx = SpringContextUtil.getApplicationContext();
chlChannelService = appCtx.getBean(ChlChannelService.class);