springboot整合多数据源

https://www.cnblogs.com/xiaofengfeng/p/9552816.html

 

package com.hainei.config;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
//import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import tk.mybatis.spring.annotation.MapperScan;

import javax.sql.DataSource;

/**
 * @Author: WangJunsa
 * @Date: 2019/7/8 9:23
 * @Version 1.0
 */
//表示这个类为一个配置类
@Configuration
// 配置mybatis的接口类放的地方
@MapperScan(basePackages = "com.hainei.dao.mysqlMapper", sqlSessionFactoryRef = "test1SqlSessionFactory")
public class DataSourceConfig1 {
    // 将这个对象放入Spring容器中
    @Bean(name = "test1DataSource")
    // 表示这个数据源是默认数据源
    @Primary
    // 读取application.properties中的配置参数映射成为一个对象
    // prefix表示参数的前缀
    @ConfigurationProperties(prefix = "spring.datasource.test1")
    public DataSource getDateSource1() {
        return DataSourceBuilder.create().build();
    }
    @Bean(name = "test1SqlSessionFactory")
    // 表示这个数据源是默认数据源
    @Primary
    // @Qualifier表示查找Spring容器中名字为test1DataSource的对象
    public SqlSessionFactory test1SqlSessionFactory(@Qualifier("test1DataSource") DataSource datasource)
            throws Exception {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(datasource);
        bean.setMapperLocations(
                // 设置mybatis的xml所在位置
                new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/mysqlMapper/*.xml"));
        return bean.getObject();
    }
    @Bean("test1SqlSessionTemplate")
    // 表示这个数据源是默认数据源
    @Primary
    public SqlSessionTemplate test1sqlsessiontemplate(
            @Qualifier("test1SqlSessionFactory") SqlSessionFactory sessionfactory) {
        return new SqlSessionTemplate(sessionfactory);
    }


}
View Code
package com.hainei.config;


import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
//import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import tk.mybatis.spring.annotation.MapperScan;

import javax.sql.DataSource;

/**
 * @Author: WangJunsa
 * @Date: 2019/7/8 9:29
 * @Version 1.0
 */

@Configuration
@MapperScan(basePackages = "com.hainei.dao.oracleMapper", sqlSessionFactoryRef = "test2SqlSessionFactory")
public class DataSourceConfig2 {
    @Bean(name = "test2DataSource")
    @ConfigurationProperties(prefix = "spring.datasource.test2")
    public DataSource getDateSource2() {
        return DataSourceBuilder.create().build();
    }
    @Bean(name = "test2SqlSessionFactory")
    public SqlSessionFactory test2SqlSessionFactory(@Qualifier("test2DataSource") DataSource datasource)
            throws Exception {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(datasource);
        bean.setMapperLocations(
                new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/*.xml"));
        return bean.getObject();
    }
    @Bean("test2SqlSessionTemplate")
    public SqlSessionTemplate test2sqlsessiontemplate(
            @Qualifier("test2SqlSessionFactory") SqlSessionFactory sessionfactory) {
        return new SqlSessionTemplate(sessionfactory);
    }


}
View Code

 

application.properties

spring.datasource.test1.jdbc-url=jdbc:mysql://localhost:3306/spms-prod?useSSL=false&serverTimezone=GMT%2B8&characterEncoding=UTF-8
spring.datasource.test1.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.test1.username=root
spring.datasource.test1.password=root

spring.datasource.test2.jdbc-url=jdbc:oracle:thin:@localhost:1521:orcl
spring.datasource.test2.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.test2.username=SYSTEM
spring.datasource.test2.password=root
#spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.use-lock=true

server.port=8083

mybatis.mapper-locations= classpath*:mapper/*/*.xml
mybatis.type-aliases-package=com.hainei.dao.*
pagehelper.helper-dialect=mysql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true
pagehelper.params=count=countSql
#??????sql????????????????????
#mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#?????????????????
#jasypt.encryptor.password=zheTang
spring.jackson.time-zone= GMT+8

#influxDB
influxDBUserName=admin
influxDBPassword= hainei1205
influxDBOpenurl=http://192.168.1.145:8086
influxDBDatabase= newopc

opcIp: 192.168.100.231
opcUserName: Administrator
opcPassWord: Abc.123+
opcCode: D66FD91F-927D-47df-B074-EB2CD3F85C18
View Code

 

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.hainei</groupId>
    <artifactId>getoracle</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>getoracle</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <java.encoding>UTF-8</java.encoding>
        <junit-version>4.11</junit-version>
        <jar-no-version-redefined-version>2.0.0.RELEASE</jar-no-version-redefined-version>
        <pom-version>3.10-FINAL</pom-version>
        <spring-version>4.0.7.RELEASE</spring-version>
        <servlet-version>2.5</servlet-version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <jar.scope>compile</jar.scope>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- jackson -->
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-core-asl</artifactId>
            <version>1.9.13</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.13</version>
        </dependency>
        <!--引入pageHelper分页插件 -->
        <!--mybatis分页插件-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.3</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.6</version>
        </dependency>
        <!--引入第三方数据源-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.6</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.43</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc7</artifactId>
            <version>12.2.0.1</version>
        </dependency>
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>1.2.4</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- Jackson -->
        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-guava</artifactId>
            <version>2.5.3</version>
        </dependency>

        <!-- tools -->
        <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>3.2.2</version>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.10</version>
        </dependency>
        <!--<dependency>-->
            <!--<groupId>org.quartz-scheduler</groupId>-->
            <!--<artifactId>quartz</artifactId>-->
            <!--<version>1.8.4</version>-->
        <!--</dependency>-->

        <!--多数据源-->





        <dependency>
            <groupId>org.influxdb</groupId>
            <artifactId>influxdb-java</artifactId>
            <version>2.15</version>
        </dependency>
        <dependency>
            <groupId>org.opentsdb.opc</groupId>
            <artifactId>lib</artifactId>
            <version>1.3.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.jinterop.dcom</groupId>
            <artifactId>common</artifactId>
            <version>2.0.4</version>
        </dependency>
        <!--&lt;!&ndash;kie api 构建kie虚拟文件系统,关联decisiontable和drl文件,很关键 &ndash;&gt;-->
        <!--<dependency>-->
        <!--<groupId>org.kie</groupId>-->
        <!--<artifactId>kie-api</artifactId>-->
        <!--</dependency>-->
        <!--&lt;!&ndash; 规则引擎核心包,里面包含了RETE引擎和LEAPS 引擎&ndash;&gt;-->
        <!--<dependency>-->
        <!--<groupId>org.drools</groupId>-->
        <!--<artifactId>drools-core</artifactId>-->
        <!--</dependency>-->
        <!--<dependency>-->
        <!--<groupId>org.drools</groupId>-->
        <!--<artifactId>drools-compiler</artifactId>-->
        <!--</dependency>-->
        <!--&lt;!&ndash; 决策表依赖&ndash;&gt;-->
        <!--<dependency>-->
        <!--<groupId>org.drools</groupId>-->
        <!--<artifactId>drools-decisiontables</artifactId>-->
        <!--</dependency>-->
        <!--<dependency>-->
        <!--<groupId>org.drools</groupId>-->
        <!--<artifactId>drools-templates</artifactId>-->
        <!--</dependency>-->

        <!--导出poi的需要的工具类-->
        <!--<dependency>-->
        <!--<groupId>org.apache.poi</groupId>-->
        <!--<artifactId>poi</artifactId>-->
        <!--<version>3.0-FINAL</version>-->
        <!--</dependency>-->
        <!--<dependency>-->
        <!--<groupId>org.apache.poi</groupId>-->
        <!--<artifactId>poi-ooxml</artifactId>-->
        <!--<version>4.0.1</version>-->
        <!--</dependency>-->
        <dependency>
            <groupId>com.github.ulisesbocchio</groupId>
            <artifactId>jasypt-spring-boot-starter</artifactId>
            <version>1.16</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.1.5.RELEASE</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-test</artifactId>
        </dependency>
        <!--activiti-->
        <!--<dependency>-->
        <!--<groupId>org.activiti</groupId>-->
        <!--<artifactId>activiti-spring-boot-starter-basic</artifactId>-->
        <!--<version>5.22.0</version>-->
        <!--</dependency>-->

        <!--<dependency>-->
        <!--<groupId>org.activiti</groupId>-->
        <!--<artifactId>activiti-modeler</artifactId>-->
        <!--<version>5.22.0</version>-->
        <!--</dependency>-->

        <!--<dependency>-->
        <!--<groupId>org.activiti</groupId>-->
        <!--<artifactId>activiti-diagram-rest</artifactId>-->
        <!--<version>5.22.0</version>-->
        <!--</dependency>-->

        <!--<dependency>-->
        <!--<groupId>org.aspectj</groupId>-->
        <!--<artifactId>aspectjweaver</artifactId>-->
        <!--</dependency>-->

        <!--<dependency>-->
        <!--<groupId>com.alibaba</groupId>-->
        <!--<artifactId>druid-spring-boot-starter</artifactId>-->
        <!--<version>${druid.version}</version>-->
        <!--</dependency>-->

        <!--<dependency>-->
        <!--<groupId>org.quartz-scheduler</groupId>-->
        <!--<artifactId>quartz</artifactId>-->
        <!--<version>${quartz.version}</version>-->
        <!--<exclusions>-->
        <!--<exclusion>-->
        <!--<groupId>com.mchange</groupId>-->
        <!--<artifactId>c3p0</artifactId>-->
        <!--</exclusion>-->
        <!--</exclusions>-->
        <!--</dependency>-->
        <!--<dependency>-->
        <!--<groupId>commons-fileupload</groupId>-->
        <!--<artifactId>commons-fileupload</artifactId>-->
        <!--<version>${commons.fileupload.version}</version>-->
        <!--</dependency>-->
        <!--<dependency>-->
        <!--<groupId>commons-io</groupId>-->
        <!--<artifactId>commons-io</artifactId>-->
        <!--<version>${commons.io.version}</version>-->
        <!--</dependency>-->

        <!--<dependency>-->
        <!--<groupId>io.springfox</groupId>-->
        <!--<artifactId>springfox-swagger2</artifactId>-->
        <!--<version>${swagger.version}</version>-->
        <!--</dependency>-->
        <!--<dependency>-->
        <!--<groupId>io.springfox</groupId>-->
        <!--<artifactId>springfox-swagger-ui</artifactId>-->
        <!--<version>${swagger.version}</version>-->
        <!--</dependency>-->

        <!--<dependency>-->
        <!--<groupId>org.springframework.boot</groupId>-->
        <!--<artifactId>spring-boot-starter-websocket</artifactId>-->
        <!--</dependency>-->

        <!--<dependency>-->
        <!--<groupId>commons-beanutils</groupId>-->
        <!--<artifactId>commons-beanutils</artifactId>-->
        <!--<version>${commons.beanutils.version}</version>-->
        <!--</dependency>-->
        <!--&lt;!&ndash; https://mvnrepository.com/artifact/org.apache.commons/commons-collections4 &ndash;&gt;-->
        <!--<dependency>-->
        <!--<groupId>org.apache.commons</groupId>-->
        <!--<artifactId>commons-collections4</artifactId>-->
        <!--<version>${commons.collections4.version}</version>-->
        <!--</dependency>-->
        <!--<dependency>-->
        <!--<groupId>com.aspose</groupId>-->
        <!--<artifactId>cells</artifactId>-->
        <!--<version>${aspose.cells.version}</version>-->
        <!--</dependency>-->
        <!--<dependency>-->
        <!--<groupId>com.aspose</groupId>-->
        <!--<artifactId>words</artifactId>-->
        <!--<version>${aspose.words.version}</version>-->
        <!--</dependency>-->
        <!--图片压缩,缩放-->
        <!--<dependency>-->
        <!--<groupId>net.coobird</groupId>-->
        <!--<artifactId>thumbnailator</artifactId>-->
        <!--<version>${net.coobird.thumbnailator.version}</version>-->
        <!--</dependency>-->
        <!--&lt;!&ndash;restTemplate访问https&ndash;&gt;-->
        <!--<dependency>-->
        <!--<groupId>org.apache.httpcomponents</groupId>-->
        <!--<artifactId>httpclient</artifactId>-->
        <!--<version>${org.apache.httpcomponents.version}</version>-->
        <!--</dependency>-->

        <!--<dependency>-->
        <!--<groupId>org.apache.ant</groupId>-->
        <!--<artifactId>ant</artifactId>-->
        <!--<version>${org.apache.ant.version}</version>-->
        <!--</dependency>-->

        <!--<dependency>-->
        <!--<groupId>org.apache.ant</groupId>-->
        <!--<artifactId>ant</artifactId>-->
        <!--<version>1.8.4</version>-->
        <!--</dependency>-->
        <!--<dependency>-->
        <!--<groupId>com.baomidou</groupId>-->
        <!--<artifactId>mybatisplus-spring-boot-starter</artifactId>-->
        <!--<version>1.0.4</version>-->
        <!--</dependency>-->

        <!--<dependency>-->
        <!--<groupId>com.baomidou</groupId>-->
        <!--<artifactId>mybatis-plus</artifactId>-->
        <!--<version>2.0.7</version>-->
        <!--</dependency>-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
            <version>1.4.0.RELEASE</version>
        </dependency>






        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>${servlet-version}</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-core</artifactId>
            <version>5.7.0</version>
        </dependency>

        <dependency>
            <groupId>com.google.protobuf</groupId>
            <artifactId>protobuf-java</artifactId>
            <version>2.3.0</version>
        </dependency>


        <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
            <classifier>jdk15</classifier>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>1.8.1</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>3.2.1</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
            <scope>${jar.scope}</scope>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1.1</version>
            <scope>${jar.scope}</scope>
        </dependency>
        <dependency>
            <groupId>net.sf.ezmorph</groupId>
            <artifactId>ezmorph</artifactId>
            <version>1.0.6</version>
            <scope>${jar.scope}</scope>
        </dependency>






    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>
View Code

 

posted @ 2020-05-21 18:32  wq9  阅读(119)  评论(0)    收藏  举报