| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 | 
							
- package org.jeecg.common.util;
 
- import cn.hutool.core.util.ObjectUtil;
 
- import lombok.extern.slf4j.Slf4j;
 
- import org.springframework.context.ApplicationContext;
 
- import org.springframework.context.ApplicationContextAware;
 
- /**
 
-  * 以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候中取出ApplicaitonContext.
 
-  *
 
-  * @author zyf
 
-  */
 
- @Slf4j
 
- public class SpringContextHolder implements ApplicationContextAware {
 
-     private static ApplicationContext applicationContext;
 
-     /**
 
-      * 实现ApplicationContextAware接口的context注入函数, 将其存入静态变量.
 
-      */
 
-     @Override
 
-     public void setApplicationContext(ApplicationContext applicationContext) {
 
-         // NOSONAR
 
-         SpringContextHolder.applicationContext = applicationContext;
 
-     }
 
-     /**
 
-      * 取得存储在静态变量中的ApplicationContext.
 
-      */
 
-     public static ApplicationContext getApplicationContext() {
 
-         checkApplicationContext();
 
-         return applicationContext;
 
-     }
 
-     /**
 
-      * 从静态变量ApplicationContext中取得Bean, 自动转型为所赋值对象的类型.
 
-      */
 
-     public static <T> T getBean(String name) {
 
-         checkApplicationContext();
 
-         return (T) applicationContext.getBean(name);
 
-     }
 
-     /**
 
-      * 从静态变量ApplicationContext中取得Bean, 自动转型为所赋值对象的类型.
 
-      */
 
-     public static <T> T getHandler(String name, Class<T> cls) {
 
-         T t = null;
 
-         if (ObjectUtil.isNotEmpty(name)) {
 
-             checkApplicationContext();
 
-             try {
 
-                 t = applicationContext.getBean(name, cls);
 
-             } catch (Exception e) {
 
-                 log.error("####################" + name + "未定义");
 
-             }
 
-         }
 
-         return t;
 
-     }
 
-     /**
 
-      * 从静态变量ApplicationContext中取得Bean, 自动转型为所赋值对象的类型.
 
-      */
 
-     public static <T> T getBean(Class<T> clazz) {
 
-         checkApplicationContext();
 
-         return applicationContext.getBean(clazz);
 
-     }
 
-     /**
 
-      * 清除applicationContext静态变量.
 
-      */
 
-     public static void cleanApplicationContext() {
 
-         applicationContext = null;
 
-     }
 
-     private static void checkApplicationContext() {
 
-         if (applicationContext == null) {
 
-             throw new IllegalStateException("applicaitonContext未注入,请在applicationContext.xml中定义SpringContextHolder");
 
-         }
 
-     }
 
- }
 
 
  |