瀏覽代碼

手动获取bean

rengb 5 年之前
父節點
當前提交
4b198e2114
共有 1 個文件被更改,包括 45 次插入0 次删除
  1. 45 0
      kernel/src/main/java/com/lantone/qc/kernel/util/SpringContextUtil.java

+ 45 - 0
kernel/src/main/java/com/lantone/qc/kernel/util/SpringContextUtil.java

@@ -0,0 +1,45 @@
+package com.lantone.qc.kernel.util;
+
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
+
+/**
+ * @Description:
+ * @author: rengb
+ * @time: 2020/3/12 11:29
+ */
+@Component
+public class SpringContextUtil implements ApplicationContextAware {
+
+    private static ApplicationContext applicationContext = null;
+
+    @Override
+    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+        if (this.applicationContext == null) {
+            this.applicationContext = applicationContext;
+        }
+    }
+
+    //获取applicationContext
+    public static ApplicationContext getApplicationContext() {
+        return applicationContext;
+    }
+
+    //通过name获取 Bean.
+    public static <T> T getBean(String name) {
+        return (T) applicationContext.getBean(name);
+    }
+
+    //通过class获取Bean.
+    public static <T> T getBean(Class<T> clazz) {
+        return applicationContext.getBean(clazz);
+    }
+
+    //通过name,以及Clazz返回指定的Bean
+    public static <T> T getBean(String name, Class<T> clazz) {
+        return applicationContext.getBean(name, clazz);
+    }
+
+}