如何在线程中注入spring管理的bean
前言
今天在开发中, 使用到了多线程,涉及到一个在线程中对数据库得操作,使用 jdbc 可以解决 , 后面又碰到了 要使用到spring管理的bean中的方法 其中也涉及到对数据库的操作 , 调用过程中报空指针异常,试了网上的很多解决办法 , 找到了一个适用的 记录一下 ,供大家参考
提示:以下是本篇文章正文内容,下面案例可供参考
代码 是一个工具类
package com.gd.smsstorage.util;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
import java.util.Locale;
/**
* Spring 获取 bean工具类
*/
@Component("getSpring")
public class GetSpringUtil implements ApplicationContextAware {
private static ApplicationContext context = null;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
context = applicationContext;
}
public static <T> T getBean(String beanName){
return (T) context.getBean(beanName);
}
public static String getMessage(String key){
return context.getMessage(key, null, Locale.getDefault());
}
}
使用的时候直接获取就可以
InsureService insureService = GetSpringUtil.getBean("insureService");