springboot druid 多数据源配置

由于工作当中,需要配置双数据源进行数据同步,以目录进行区别主副库的编写。这里记录一下,方便大家。

1、pom配置

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

2、yml配置

spring: datasource:    druid:      primary:        driver-class-name: oracle.jdbc.driver.OracleDriver                     url: jdbc:oracle:thin:@192.168.1.1:1521:orcl             # 数据库名称        username: test        password: 123456        min-idle: 1                                           # 数据库连接池的最小维持连接数        initial-size: 5                                       # 初始化连接数        max-active: 8        max-wait: 60000      secondary:        driver-class-name: oracle.jdbc.driver.OracleDriver              # 驱动包 todo 光谷库        url: jdbc:oracle:thin:@192.168.1.2:1521:orcl             # 数据库名称        username: test        password: inner        min-idle: 1                                           # 数据库连接池的最小维持连接数        initial-size: 5                                       # 初始化连接数        max-active: 8        max-wait: 60000

3、配置类编写

@Configurationpublic class DataSourcePrimaryConfig {    @Bean(name = "primaryDataSource")    @ConfigurationProperties(prefix = "spring.datasource.druid.primary")    @Primary public DruidDataSource primaryDataSource() {        return DruidDataSourceBuilder.create().build(); }    @Bean    @Primary public SqlSessionFactory primarySqlSessionFactory(@Qualifier("primaryDataSource") DataSource dataSource) throws Exception {        SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(dataSource); PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); bean.setMapperLocations(resolver.getResources(                "classpath*:mybatis/mapping/*.xml")); bean.setConfigLocation(resolver.getResource("classpath:mybatis/mybatis.cfg.xml"));        return bean.getObject(); }    @Bean    @Primary public DataSourceTransactionManager primaryTransactionManager(@Qualifier("primaryDataSource") DataSource dataSource) {        return new DataSourceTransactionManager(dataSource); }    @Bean    @Primary public SqlSessionTemplate primarySqlSessionTemplate(@Qualifier("primarySqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {        return new SqlSessionTemplate(sqlSessionFactory); }

}

@Configurationpublic class DataSourceSecondaryConfig {    @Bean(name = "secondaryDataSource")    @ConfigurationProperties(prefix = "spring.datasource.druid.secondary")    public DruidDataSource secondaryDataSource() {        return DruidDataSourceBuilder.create().build(); }    @Bean public SqlSessionFactory secondarySqlSessionFactory(@Qualifier("secondaryDataSource") DataSource dataSource) throws Exception {        SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(dataSource); PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); bean.setMapperLocations(resolver.getResources(                "classpath*:mybatis/mapping/secondary/*.xml")); bean.setConfigLocation(resolver.getResource("classpath:mybatis/mybatis.cfg.xml"));        return bean.getObject(); }    @Bean public DataSourceTransactionManager secondaryTransactionManager(@Qualifier("secondaryDataSource") DataSource dataSource) {        return new DataSourceTransactionManager(dataSource); }    @Bean public SqlSessionTemplate secondarySqlSessionTemplate(@Qualifier("secondarySqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {        return new SqlSessionTemplate(sqlSessionFactory); }

}

4、MyBatisMapperScannerConfig 配置

@Configurationpublic class MyBatisMapperScannerConfig {    @Bean public MapperScannerConfigurer mapperScannerConfigurer() {        MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer(); mapperScannerConfigurer.setSqlSessionFactoryBeanName("primarySqlSessionFactory"); mapperScannerConfigurer.setSqlSessionTemplateBeanName("primarySqlSessionTemplate"); mapperScannerConfigurer.setBasePackage("com.onecloud.**.mapper");

 //初始化扫描器的相关配置,这里我们要创建一个Mapper的父类 Properties properties = new Properties(); properties.setProperty("mappers", "tk.mybatis.mapper.common.Mapper"); properties.setProperty("notEmpty", "false"); properties.setProperty("IDENTITY", "ORACLE"); //主键UUID回写方法执行顺序 默认AFTER properties.setProperty("ORDER","BEFORE"); mapperScannerConfigurer.setProperties(properties);        return mapperScannerConfigurer; }}

MyBatisSecondaryMapperScannerConfig 参照上面

原文地址:https://www.cnblogs.com/enots/p/11112533.html

时间: 2024-08-26 15:33:03

springboot druid 多数据源配置的相关文章

springboot+ibatis 多数据源配置

这个是boot基本版本包,因为我用的打包方式是war所以去除掉了boot内置的tomcat,但是为了方便测试又引入了内置tomcat,只要添加<scope>provided</scope>在打包时就不会影响了. <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> &l

springboot整合多数据源配置

简介 主要介绍两种整合方式,分别是 springboot+mybatis 使用分包方式整合,和 springboot+druid+mybatisplus 使用注解方式整合. 一.表结构 在本地新建两个数据库,名称分别为db1和db2,新建一张user表,表结构如下: SQL代码: CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `name` varchar(25) NOT NULL COMMENT

springboot之多数据源配置JdbcTemplate

springboot多数据源配置,代码如下 DataSourceConfig package com.rookie.bigdata.config; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.jdbc.

Mybatis+Druid多数据源配置

在日常开发中我们可能会用到多数据源开发,什么是多数据源? 简单来讲的话,就是一个项目连接多个数据库.当然只是可能会用到,我暂时没见过应用场景,但是还是了解学习一下 此项目可以基于上一个简单集成项目进行简单的修改,就能实现多数据源了. application.yml配置 我们在上一个项目的基础上进行修改,实现多数据源配置 spring: datasource: type: com.alibaba.druid.pool.DruidDataSource url: jdbc:mysql://localh

基于springboot的多数据源配置

发布时间:2018-12-11 技术:springboot1.5.1 + maven3.0.1+ mybatis-plus-boot-starter2.3.1 + dynamic-datasource-spring-boot-starter2.4.2 + jdk1.8 概述 详细 代码下载:http://www.demodashi.com/demo/14622.html 一.前言 本篇demo实现了springboot项目实现了多数据源切换的功能.对一些有多个数据库的项目来说是一个很好的参考.

springboot 双 sqlite 数据源配置

1.在配置资源文件中 配置如下 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource #SQLLITE #SQLLITE spring.datasource.sqlite.driver-class-name=org.sqlite.JDBC spring.datasource.sqlite.url=jdbc:sqlite:db/personInfo.db #SQLLITE spring.datasource.sqlite2.dr

springboot+druid+mybatis-Plus 配置详解

网上找了很多关于springboot+druid+mybatis-Plus的配置,遇见的很多问题 也没找到好的解决方案.折腾了好几天终于自己配置通过了. springboot的pom文件 1 <parent> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-starter-parent</artifactId> 4 <version>2.0

使用springboot + druid + mybatisplus完成多数据源配置

一. 简介 1. 版本 springboot版本为2.0.3.RELEASE,mybatisplus版本为2.1.9, druid版本为1.1.9,swagger版本为2.7.0 2. 项目地址    https://gitee.com/hsbt2333/ssm.git 3. 留个记录,方便查找 开发步骤: 1. 新建springboot项目. 2. 导入依赖   -->  devtools,lombok,web,thymeleaf,mysql,aop,mybatisplus,druid,swa

SpringBoot+Druid+Mybatis配置多数据源

我们在开发一个项目的时候,可能会遇到需要对多个数据库进行读写的需求,这时候就得在项目中配置多个数据源了.在Java项目的开发中,目前最常用的数据操作框架是 Mybatis,开发框架也都基本用上了SpringBoot.而Druid号称最好的数据库连接池,自然也是被广泛使用. 所以本文将演示一下,SpringBoot+Druid+Mybatis如何去配置多数据源.首先在IDEA中创建一个SpringBoot工程: 选择一些基本的包: 完成创建: pom.xml配置的依赖如下: <dependenci