diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/ServiceException.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/ServiceException.java
index 5039bc0..11bb283 100644
--- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/ServiceException.java
+++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/exception/ServiceException.java
@@ -5,7 +5,7 @@ package com.muyu.common.core.exception;
*
* @author muyu
*/
-public final class ServiceException extends RuntimeException {
+public class ServiceException extends RuntimeException {
private static final long serialVersionUID = 1L;
/**
diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/SpringUtils.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/SpringUtils.java
index c37a65c..4275ee0 100644
--- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/SpringUtils.java
+++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/utils/SpringUtils.java
@@ -5,6 +5,9 @@ import org.springframework.beans.BeansException;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
+import org.springframework.beans.factory.support.DefaultListableBeanFactory;
+import org.springframework.beans.factory.support.GenericBeanDefinition;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.stereotype.Component;
/**
@@ -111,4 +114,18 @@ public final class SpringUtils implements BeanFactoryPostProcessor {
public void postProcessBeanFactory (ConfigurableListableBeanFactory beanFactory) throws BeansException {
SpringUtils.beanFactory = beanFactory;
}
+
+ public static void registerBean(String beanName, Object bean) {
+ if (beanFactory instanceof AnnotationConfigApplicationContext) {
+ AnnotationConfigApplicationContext annotationContext = (AnnotationConfigApplicationContext) beanFactory;
+ DefaultListableBeanFactory beanFactory = (DefaultListableBeanFactory) annotationContext.getBeanFactory();
+
+ GenericBeanDefinition definition = new GenericBeanDefinition();
+ definition.setBeanClass(bean.getClass());
+ beanFactory.registerBeanDefinition(beanName, definition);
+ beanFactory.registerSingleton(beanName, bean);
+ } else {
+ throw new IllegalStateException("注入失败");
+ }
+ }
}
diff --git a/muyu-common/muyu-common-saas/pom.xml b/muyu-common/muyu-common-saas/pom.xml
new file mode 100644
index 0000000..aa6ebab
--- /dev/null
+++ b/muyu-common/muyu-common-saas/pom.xml
@@ -0,0 +1,38 @@
+
+
+ 4.0.0
+
+ com.muyu
+ muyu-common
+ 3.6.3
+
+
+ muyu-common-saas
+ SaaS公共依赖
+
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+
+ com.muyu
+ muyu-common-datasource
+
+
+
+
+ com.muyu
+ muyu-common-core
+
+
+ org.springframework
+ spring-webmvc
+
+
+
diff --git a/muyu-common/muyu-common-saas/src/main/java/com/muyu/clw/common/many/datasource/ManyDataSource.java b/muyu-common/muyu-common-saas/src/main/java/com/muyu/clw/common/many/datasource/ManyDataSource.java
new file mode 100644
index 0000000..1f91ef6
--- /dev/null
+++ b/muyu-common/muyu-common-saas/src/main/java/com/muyu/clw/common/many/datasource/ManyDataSource.java
@@ -0,0 +1,55 @@
+package com.muyu.clw.common.many.datasource;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import com.muyu.clw.common.many.datasource.domain.model.DataSourceInfo;
+import com.muyu.clw.common.saas.domain.model.EntInfo;
+import com.muyu.clw.common.many.datasource.factory.DruidDataSourceFactory;
+import com.muyu.clw.common.many.datasource.role.DynamicDataSource;
+import com.muyu.common.core.utils.SpringUtils;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Primary;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 多数据源
+ *
+ * @ClassName ManyDataSource
+ * @Author AnNan.Wang
+ * @Date 2024/6/4 14:10
+ */
+
+@Log4j2
+@Component
+public class ManyDataSource {
+ public static List dataSourceInfoList(EntInfo entInfo) {
+ List list = new ArrayList<>();
+ list.add(entInfo);
+ return list;
+ }
+ @Bean
+ @Primary
+ public static DynamicDataSource dynamicDataSource(DruidDataSourceFactory druidDataSourceFactory,EntInfo entInfoList) {
+
+ Map