首页 > 代码库 > 实现ApplicationContextAware接口时,获取ApplicationContext为null

实现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