线程中使用注解出现空指针如何解决?

 

1、通过构造方法传递进去

2、参考:https://blog.csdn.net/u010107350/article/details/50347925

     使用:KeepAliveService keepAliveService = SpringContextUtil.getBean("keepAliveService"); // 不需要强转

  注意:BeanName 对于@Component修饰类,默认为类名称首字母小写,对于@Bean修饰方法,默认为方法名称。

import java.util.Locale;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

/** 
 * 项目名称: 
 * 类名: SpringContextUtil
 * 描述: 获取bean的工具类,可用于在线程里面获取bean
 * 创建人: awsm
 * 创建时间: Dec 17, 2015 10:46:44 PM
 * 修改人:awsm
 * 修改时间:Dec 17, 2015 10:46:44 PM
 * 修改备注:
 * 版本:1.0
 */
public class SpringContextUtil implements ApplicationContextAware {

    private static ApplicationContext context = null;

    /* (non Javadoc)
     * @Title: setApplicationContext
     * @Description: spring获取bean工具类
     * @param applicationContext
     * @throws BeansException
     * @see org.springframework.context.ApplicationContextAware#setApplicationContext(org.springframework.context.ApplicationContext)
     */
    @Override
    public void setApplicationContext(ApplicationContext applicationContext)
            throws BeansException {
        this.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());
    }

}

  

posted @ 2018-04-09 16:21  月下小魔王  阅读(1194)  评论(0编辑  收藏  举报