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); } }
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); } }
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
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> <!--<!–kie api 构建kie虚拟文件系统,关联decisiontable和drl文件,很关键 –>--> <!--<dependency>--> <!--<groupId>org.kie</groupId>--> <!--<artifactId>kie-api</artifactId>--> <!--</dependency>--> <!--<!– 规则引擎核心包,里面包含了RETE引擎和LEAPS 引擎–>--> <!--<dependency>--> <!--<groupId>org.drools</groupId>--> <!--<artifactId>drools-core</artifactId>--> <!--</dependency>--> <!--<dependency>--> <!--<groupId>org.drools</groupId>--> <!--<artifactId>drools-compiler</artifactId>--> <!--</dependency>--> <!--<!– 决策表依赖–>--> <!--<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>--> <!--<!– https://mvnrepository.com/artifact/org.apache.commons/commons-collections4 –>--> <!--<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>--> <!--<!–restTemplate访问https–>--> <!--<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>
个人学习笔记,记录日常学习,便于查阅及加深,仅为方便个人使用。

浙公网安备 33010602011771号