首页 > 其他分享 >SpringBoot多数据源

SpringBoot多数据源

时间:2023-02-21 17:58:32浏览次数:35  
标签:slave SpringBoot spring dynamic master datasource 数据源

重点概念

多数据源在配置之后是根据service的实现类上面的注解来确定生效范围的,一个实现类可以根据注解代表一个数据库

ServiceImpl

import com.baomidou.dynamic.datasource.annotation.DS;
//决定用哪个数据源
@DS("slave")
@Service
public class OracleFileBrowsingServiceImpl extends ServiceImpl<FileBrowsingMapper, FileBrowsing> implements FileBrowsingService {
    @Override
    public Map<String, Object> queryList(String name, String resultType, String startTimeStr, String endTimeStr, Integer page, Integer size) {
        return null;
    }
}

使用部分

@Primary //代表本实现类中或者本实现类被ioc获取后,使用的是默认的数据源
@Service
public class FileBrowsingServiceImpl extends ServiceImpl<FileBrowsingMapper, FileBrowsing> implements FileBrowsingService {
	@Resource
    @Qualifier(value = "oracleFileBrowsingServiceImpl")//根据实现类的首字母小写类名注入
    private FileBrowsingService oracleFileBrowsingService;

	public Map<String, Object> queryList(String name, String approvalType, String startTimeStr, String endTimeStr, Integer page, Integer size) {
        //此处使用oracle的实现类,所保存的数据源为oracle实现类中注解的数据源
        oracleFileBrowsingService.saveOrUpdateBatch(fileBrowsingList);
        return resultMap;
    }
}

配置

application.properties

# ======================= DataSource start==========================
spring.datasource.dynamic.primary=master
# 设置第一个数据库
#spring.datasource.dynamic.datasource.master.driver-class-name=org.postgresql.Driver
#spring.datasource.dynamic.datasource.master.url=jdbc:postgresql://192.9.30.225:5432/diitmap_yt
#spring.datasource.dynamic.datasource.master.username=postgres
#spring.datasource.dynamic.datasource.master.password=postgres
spring.datasource.dynamic.datasource.master.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.dynamic.datasource.master.url=jdbc:mysql://localhost:3306/test
#spring.datasource.dynamic.datasource.master.url=jdbc:mysql://10.224.130.130:3306/gjxq_prod
spring.datasource.dynamic.datasource.master.username=admin
spring.datasource.dynamic.datasource.master.password=123456
spring.datasource.dynamic.datasource.master.initial-size=1
spring.datasource.dynamic.datasource.master.max-active=10
spring.datasource.dynamic.datasource.master.min-idle=1
spring.datasource.dynamic.datasource.master.max-wait=60000
spring.datasource.dynamic.datasource.master.max-pool-prepared-statement-per-connection-size=5
spring.datasource.dynamic.datasource.master.time-between-eviction-runs-millis=60000
spring.datasource.dynamic.datasource.master.min-evictable-idle-time-millis=300000
spring.datasource.dynamic.datasource.master.stat-view-servlet.url-pattern=/druid/*
spring.datasource.dynamic.datasource.master.filter.stat.slow-sql-millis=1000
#从连接池中借用连接时是否要进行测试
spring.datasource.dynamic.datasource.master.test-on-borrow=true
#执行连接验证的间隔时间,单位为毫秒
spring.datasource.dynamic.datasource.master.validation-interval=10000
#测试链接的sql语句
spring.datasource.dynamic.datasource.master.validation-query=SELECT 1
spring.datasource.dynamic.datasource.master.connection-test-query=SELECT 1
#在连接空闲时是否要进行测试
spring.datasource.dynamic.datasource.master.test-while-idle=true
#在使用 Tomcat 连接池时是否要记录验证错误
spring.datasource.dynamic.datasource.master.log-validation-errors=true
# 设置第二个数据库
spring.datasource.dynamic.datasource.slave.username=FILE_BROWSE
spring.datasource.dynamic.datasource.slave.password=FILE_BROWSE
spring.datasource.dynamic.datasource.slave.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.dynamic.datasource.slave.url=jdbc:oracle:thin:@192.9.30.229:1521/orcl
spring.datasource.dynamic.datasource.slave.initial-size=1
spring.datasource.dynamic.datasource.slave.max-active=10
spring.datasource.dynamic.datasource.slave.min-idle=1
spring.datasource.dynamic.datasource.slave.max-wait=60000
spring.datasource.dynamic.datasource.slave.max-pool-prepared-statement-per-connection-size=5
spring.datasource.dynamic.datasource.slave.time-between-eviction-runs-millis=60000
spring.datasource.dynamic.datasource.slave.min-evictable-idle-time-millis=300000
spring.datasource.dynamic.datasource.slave.stat-view-servlet.url-pattern=/druid/*
spring.datasource.dynamic.datasource.slave.filter.stat.slow-sql-millis=1000
#从连接池中借用连接时是否要进行测试
spring.datasource.dynamic.datasource.slave.test-on-borrow=true
#执行连接验证的间隔时间,单位为毫秒
spring.datasource.dynamic.datasource.slave.validation-interval=10000
#测试链接的sql语句
spring.datasource.dynamic.datasource.slave.validation-query=SELECT 1
spring.datasource.dynamic.datasource.slave.connection-test-query=SELECT 1
#在连接空闲时是否要进行测试
spring.datasource.dynamic.datasource.slave.test-while-idle=true
#在使用 Tomcat 连接池时是否要记录验证错误
spring.datasource.dynamic.datasource.slave.log-validation-errors=true
# ======================= DataSource end==========================

标签:slave,SpringBoot,spring,dynamic,master,datasource,数据源
From: https://www.cnblogs.com/ideaAI/p/17141858.html

相关文章

  • 股票、指数、快照、逐笔... 不同行情数据源的实时关联分析应用
    在进行数据分析时经常需要对多个不同的数据源进行关联操作,因此在各类数据库的SQL语言中均包含了丰富的join语句,以支持批计算中的多种关联操作。DolphinDB不仅通过joi......
  • Camunda(二)---Springboot引入
    Springboot引入参考:【第三篇】Camunda系列-整合SpringBoot-腾讯云开发者社区-腾讯云(tencent.com) 简单的引入方式访问:https://start.camunda.com解压压缩包,通过......
  • springboot 使用@Async注解实现异步多线程
    1、在启动类中添加注解@SpringBootApplication@EnableAsync//@ImportResource(locations={"classpath:spring/my.xml"})publicclassDemoApplication{publi......
  • Springboot整合JWT封装工具类篇(二)
    前言:这里是将Springboot整合JWT测试篇(一)封装成工具类publicclassJWTUtils{//秘钥自己保管好privatestaticStringSECRET="token!Q@W3e4r";/**......
  • Springboot整合JWT测试篇(一)
    一、pom文件中引入依赖<!--引入jwt--><dependency><groupId>com.auth0</groupId><artifactId>java-jwt</artifactId><version>3.4.0</version></dependency>......
  • eclipse创建springBoot项目
    创建SpringBoot工程先在eclipse中安装spring-tool-suite插件,然后根据以下步骤可以创建1、新建SpringStarterProject2、Packaging选择jar 3、勾选Web项 4、项目结......
  • SpringBoot集成Tomcat服务
    目录一、Tomcat集成1、依赖层级2、自动化配置二、Tomcat架构三、Tomcat配置1、基础配置2、属性配置类3、配置加载分析四、周期管理方法1、控制类2、核心方法五、参考源码......
  • 基于 springboot + mybatis-plus + MySQL 重构过去一个项目的踩坑总结(持续更新)
    ①使用mybatis-plus时,如果根据某个条件查询没有查到数据,那么返回的实体类是null,如果使用get方法就会导致空指针异常,这点要规避②如果Map初始化在循环体外,那么在循......
  • SpringBoot 配置 HTTPS 安全证书的两种方案
    使用JDK自带的工具生成证书使用FreeSSL提供的证  使用JDK自带的工具生成证书确保安装了JDK并正确配置了环境变量;进入你的JAVA_HOME目录中的bin目录;在这个目......
  • SpringBoot02 - 基础配置
    SpringBoot基础配置1.属性配置​ SpringBoot通过配置文件application.properties就可以修改默认的配置,那咱们就先找个简单的配置下手,当前访问tomcat的默认端口是8080,好熟......