场景:
我们有的时候需要在线程中注入bean对象,但是会出现空指针异常,因为web容器并没有引用到spring容器的对象
解决:
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
/**
* 获取spring对象的工具类(bean对象)
* 使用事列:FrameSpringBeanUtil.getBean(JedisCluster.class);
*/
@Component
public class FrameSpringBeanUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext arg0) throws BeansException {
applicationContext = arg0;
}
@SuppressWarnings("unchecked")
public static <T> T getBean(String name) {
return (T) applicationContext.getBean(name);
}
public static <T> T getBean(Class<T> cls) {
return applicationContext.getBean(cls);
}
}
这样就可以在线程中成功注入bean