From ce920867ae3a55d17ce5caf30961b6d51e2a7078 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 11 七月 2025 09:03:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 server/services/src/main/java/com/doumee/config/mybatis/SpringUtils.java |   69 ++++++++++++++++++++++++++++++++++
 1 files changed, 69 insertions(+), 0 deletions(-)

diff --git a/server/services/src/main/java/com/doumee/config/mybatis/SpringUtils.java b/server/services/src/main/java/com/doumee/config/mybatis/SpringUtils.java
new file mode 100644
index 0000000..f813d05
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/config/mybatis/SpringUtils.java
@@ -0,0 +1,69 @@
+package com.doumee.config.mybatis;
+
+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