From 00a4338443d09932ed4c56266d8c4e73ff60b46c Mon Sep 17 00:00:00 2001
From: SZH <szh_hello@163.com>
Date: 星期三, 29 六月 2022 16:30:14 +0800
Subject: [PATCH] 添加多数据源

---
 safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/database/MyBatisConfigEmergency.java |   75 +++++++++++++++++++++++++++++++++++++
 1 files changed, 75 insertions(+), 0 deletions(-)

diff --git a/safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/database/MyBatisConfigEmergency.java b/safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/database/MyBatisConfigEmergency.java
new file mode 100644
index 0000000..685c3a7
--- /dev/null
+++ b/safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/database/MyBatisConfigEmergency.java
@@ -0,0 +1,75 @@
+package com.gkhy.safePlatform.config.database;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
+import org.apache.ibatis.plugin.Interceptor;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.mybatis.spring.SqlSessionTemplate;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.io.Resource;
+import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
+import org.springframework.core.io.support.ResourcePatternResolver;
+import org.springframework.stereotype.Repository;
+
+import javax.sql.DataSource;
+import java.util.ArrayList;
+import java.util.Arrays;
+
+@Configuration
+@MapperScan(basePackages = {"com.gkhy.safePlatform.emergency","com.gkhy.safePlatform.emergency"},
+        sqlSessionTemplateRef = "sqlTemplateEmergency",annotationClass =
+        Repository.class)
+public class MyBatisConfigEmergency {
+
+    @Autowired
+    @Qualifier("dsEmergency")
+    DataSource dsEmergency;
+
+    @Autowired
+    private MybatisPlusInterceptor mybatisPlusInterceptor;
+
+    @Bean(name = "datasourceEmergency")
+    @ConfigurationProperties(prefix = "spring.datasource.emergency")
+    public DruidDataSource druidDataSourceA(){
+        return DruidDataSourceBuilder.create().build();
+    }
+
+    @Bean(name = "sqlFactoryEmergency")
+    public SqlSessionFactory sqlSessionFactory(@Qualifier("datasourceEmergency") DruidDataSource dataSource)
+            throws Exception
+    {
+        MybatisSqlSessionFactoryBean factoryBean = new MybatisSqlSessionFactoryBean();
+        factoryBean.setDataSource(dataSource);
+        ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
+
+        //-------------------
+        Resource[] rs1 = resolver.getResources("classpath*:config/mapper/emergency/**Mapper.xml");
+//        Resource[] rs2 = resolver.getResources("classpath*:config/mapper/goalManage/**Mapper.xml");
+        ArrayList<Resource> resourceArrayList = new ArrayList<>(Arrays.asList(rs1));
+//        resourceArrayList.addAll(new ArrayList<>(Arrays.asList(rs2)));
+        Resource[] resourceArray = new Resource[resourceArrayList.size()];
+        resourceArrayList.toArray(resourceArray);
+        factoryBean.setMapperLocations(resourceArray);
+        //-------------------
+
+//        factoryBean.setMapperLocations(resolver.getResources("classpath*:config/mapper/**/**Mapper.xml"));
+        //设置分页插件
+        Interceptor[] plugins = {mybatisPlusInterceptor};
+        factoryBean.setPlugins(plugins);
+        return factoryBean.getObject();
+    }
+
+    @Bean(name = "sqlTemplateEmergency")
+    public SqlSessionTemplate sqlSessionTemplate(@Qualifier("sqlFactoryEmergency") SqlSessionFactory sqlSessionFactory)
+    {
+        return new SqlSessionTemplate(sqlSessionFactory);
+    }
+
+}

--
Gitblit v1.9.2