实现ApplicationContextAware接口时,获取ApplicationContext为null

Posted 九人稚。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现ApplicationContextAware接口时,获取ApplicationContext为null相关的知识,希望对你有一定的参考价值。

将懒加载关闭,@Lazy(false),默认为true

 1 import org.springframework.beans.BeansException;
 2 import org.springframework.context.ApplicationContext;
 3 import org.springframework.context.ApplicationContextAware;
 4 import org.springframework.context.annotation.Lazy;
 5 import org.springframework.stereotype.Service;
 6 
 7 @Service
 8 @Lazy(false)
 9 public class SpringContextUtil implements ApplicationContextAware {
10 
11     private static ApplicationContext applicationContext = null; // Spring应用上下文环境
12 
13     /*
14      * 
15      * 实现了ApplicationContextAware 接口,必须实现该方法;
16      * 
17      * 通过传递applicationContext参数初始化成员变量applicationContext
18      */
19 
20     public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
21         SpringContextUtil.applicationContext = applicationContext;
22     }
23 
24     public static ApplicationContext getApplicationContext() {
25         return applicationContext;
26     }
27 
28     @SuppressWarnings("unchecked")
29     public static <T> T getBean(String name) throws BeansException {
30         return (T) applicationContext.getBean(name);
31     }
32 
33 }

 

以上是关于实现ApplicationContextAware接口时,获取ApplicationContext为null的主要内容,如果未能解决你的问题,请参考以下文章

实现ApplicationContextAware接口时,获取ApplicationContext为null

通过实现ApplicationContextAware接口动态获取bean

ApplicationContextAware接口实现多继承Bean装配

在spring项目中,普通类注入获取Bean,实现ApplicationContextAware接口

ApplicationContextAware 的 setApplicationContext() 方法执行逻辑全解析

ApplicationContextAware 接口