解决 注入Bean为null的问题 ApplicationContext Spring 上下文对象

做项目的时候在使用一些其他框架的时候 发现Autowired 为NULL 查阅了一些资料发现以下这个方法可以解决这个问题

1.创建SpringContextUtil类

package com.example.demo.Confi;

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

import java.util.Locale;

/**
 * @Author:linjunbo
 * @Description: 解决been注入为null的问题
 * @Date: 2020/1/10 8:47
 */


public class SpringContextUtil implements ApplicationContextAware {
// Spring上下文对象.静态变量,可在任何代码任何地方任何时候中取出ApplicaitonContext(spring的容器).
    private static ApplicationContext context;

    @Override
   // @SuppressWarnings("static-access")
    public void setApplicationContext(ApplicationContext contex)
            throws BeansException {
        // TODO Auto-generated method stub
        this.context = contex;
    }

    public static Object getBean(String beanName) {
        return context.getBean(beanName);
    }

    public static String getMessage(String key) {
        return context.getMessage(key, null, Locale.getDefault());

    }
}

2.在java配置文件中将SpringContextUtil加入spring容器里


    @Bean(name = "SpringContextUtil")
    public SpringContextUtil jobFactory(){
        return new SpringContextUtil();
    }

3. 使用

  RoomElectricDayService roomElectricDayService =(RoomElectricDayService)SpringContextUtil.getBean("RoomElectricDayServiceImpl");
发布了78 篇原创文章 · 获赞 5 · 访问量 7360

猜你喜欢

转载自blog.csdn.net/weixin_41930050/article/details/104537365