From 94c670060fb681b4e7262989bdea9748f03fb93c Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期一, 18 三月 2024 16:19:28 +0800
Subject: [PATCH] git ch

---
 server/service/src/main/java/com/doumee/core/wx/SpringUtils.java |   69 ++++++++++++++++++++++++++++++++++
 1 files changed, 69 insertions(+), 0 deletions(-)

diff --git a/server/service/src/main/java/com/doumee/core/wx/SpringUtils.java b/server/service/src/main/java/com/doumee/core/wx/SpringUtils.java
new file mode 100644
index 0000000..d12ab86
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/core/wx/SpringUtils.java
@@ -0,0 +1,69 @@
+package com.doumee.core.wx;
+
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.config.BeanDefinition;
+import org.springframework.beans.factory.support.BeanDefinitionBuilder;
+import org.springframework.beans.factory.support.BeanDefinitionRegistry;
+import org.springframework.beans.factory.support.DefaultListableBeanFactory;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
+
+/**
+ * NOTICE: NEVER USE IT WHEN REGISTERING A SPRING BEAN.
+ *
+ * @author Guang YANG
+ */
+@Component
+public class SpringUtils implements ApplicationContextAware {
+
+    private static ApplicationContext CTX;
+
+    public static ApplicationContext get() {
+        return CTX;
+    }
+
+    @Override
+    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+        CTX = applicationContext;
+    }
+
+    /**
+     * 鍚戝鍣ㄤ腑鍔ㄦ�佹坊鍔燘ean
+     *
+     * @param ctx
+     * @param beanName
+     * @param beanClass
+     */
+    public static void addBean(ApplicationContext ctx, String beanName, Class beanClass) {
+        BeanDefinitionRegistry beanDefReg = (DefaultListableBeanFactory)ctx.getAutowireCapableBeanFactory();
+        BeanDefinitionBuilder beanDefBuilder = BeanDefinitionBuilder.genericBeanDefinition(beanClass);
+        BeanDefinition beanDef = beanDefBuilder.getBeanDefinition();
+        if (!beanDefReg.containsBeanDefinition(beanName)) {
+            beanDefReg.registerBeanDefinition(beanName, beanDef);
+        }
+    }
+
+    /**
+     * 浠庡鍣ㄤ腑绉婚櫎Bean
+     *
+     * @param ctx
+     * @param beanName
+     */
+   public static void removeBean(ApplicationContext ctx, String beanName) {
+        BeanDefinitionRegistry beanDefReg = (DefaultListableBeanFactory) ctx.getAutowireCapableBeanFactory();
+        beanDefReg.getBeanDefinition(beanName);
+        beanDefReg.removeBeanDefinition(beanName);
+    }
+
+    /**
+     * 閬嶅巻杈撳嚭鎵�鏈塀ean鐨勪俊鎭�
+     */
+    static void showAllBeans(ApplicationContext ctx) {
+        //閬嶅巻
+        for (String name : ctx.getBeanDefinitionNames()) {
+            System.out.println("name:" + name + ",class:" + ctx.getBean(name).getClass());
+        }
+    }
+
+}

--
Gitblit v1.9.3