1. application.properties

  1. #\u4E3B\u5E93\u914D\u7F6E
  2. spring.datasource.primary.url=jdbc:mysql://mysql.test.xxxxx.com:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false
  3. spring.datasource.primary.username=root
  4. spring.datasource.primary.password=root
  5. spring.datasource.primary.driver-class-name=com.mysql.jdbc.Driver
  6. spring.datasource.primary.type=com.zaxxer.hikari.HikariDataSource
  7.  
  8. spring.datasource.secondary.url=jdbc:mysql://mysql.log.test.xxxx.com:3306/test_log?useUnicode=true&characterEncoding=utf8&useSSL=false
  9. spring.datasource.secondary.username=root
  10. spring.datasource.secondary.password=root
  11. spring.datasource.secondary.driver-class-name=com.mysql.jdbc.Driver
  12. spring.datasource.secondary.type=com.zaxxer.hikari.HikariDataSource

2. 配置类

2.1 datasource配置

  1. import javax.sql.DataSource;
  2.  
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.beans.factory.annotation.Qualifier;
  5. import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
  6. import org.springframework.boot.context.properties.ConfigurationProperties;
  7. import org.springframework.context.annotation.Bean;
  8. import org.springframework.context.annotation.Configuration;
  9. import org.springframework.context.annotation.Primary;
  10.  
  11. import com.zaxxer.hikari.HikariDataSource;
  12.  
  13. @Configuration
  14. public class DataSourceConfig {
  15. @Bean
  16. @Qualifier("primaryDataSourceProperties")
  17. @Primary
  18. @ConfigurationProperties(prefix = "spring.datasource.primary")
  19. public DataSourceProperties primaryDataSourceProperties() {
  20. return new DataSourceProperties();
  21. }
  22.  
  23. @Autowired
  24. @Qualifier("primaryDataSourceProperties")
  25. private DataSourceProperties primaryDataSourceProperties;
  26.  
  27. @Bean
  28. @Qualifier("primaryDataSource")
  29. @Primary
  30. public DataSource primaryDataSource() {
  31. return primaryDataSourceProperties.initializeDataSourceBuilder().type(HikariDataSource.class).build();
  32. }
  33.  
  34. //////////////////////
  35.  
  36. @Bean
  37. @Qualifier("secondaryDataSourceProperties")
  38. @ConfigurationProperties(prefix = "spring.datasource.secondary")
  39. public DataSourceProperties secondaryDataSourceProperties() {
  40. return new DataSourceProperties();
  41. }
  42.  
  43. @Autowired
  44. @Qualifier("secondaryDataSourceProperties")
  45. private DataSourceProperties secondaryDataSourceProperties;
  46.  
  47. @Bean(name = "secondaryDataSource")
  48. @Qualifier("secondaryDataSource")
  49. public DataSource secondaryDataSource() {
  50. return secondaryDataSourceProperties.initializeDataSourceBuilder().type(HikariDataSource.class).build();
  51. }
  52.  
  53. }

2.2 主库配置

  1. import org.apache.ibatis.session.SqlSessionFactory;
  2. import org.mybatis.spring.SqlSessionFactoryBean;
  3. import org.mybatis.spring.annotation.MapperScan;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.beans.factory.annotation.Qualifier;
  6. import org.springframework.context.annotation.Bean;
  7. import org.springframework.context.annotation.Configuration;
  8. import org.springframework.context.annotation.Primary;
  9. /*
  10. * 主库的配置
  11. */
  12. @Configuration
  13. @MapperScan(basePackages = "com.xxxx.xxxx.mapper",sqlSessionFactoryRef = "primarySqlSessionFactory")
  14. public class DatabaseConfig {
  15. @Autowired
  16. @Qualifier("primaryDataSource")
  17. private DataSource primaryDataSource;
  18.  
  19. @Bean("primarySqlSessionFactory")
  20. @Qualifier("primarySqlSessionFactory")
  21. @Primary
  22. public SqlSessionFactory sqlSessionFactory() throws Exception {
  23. SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
  24. sessionFactoryBean.setDataSource(primaryDataSource);
  25. return sessionFactoryBean.getObject();
  26. }
  27. } // class DatabaseConfig

2.3 日志库配置

  1. import javax.sql.DataSource;
  2.  
  3. import org.apache.ibatis.session.SqlSessionFactory;
  4. import org.mybatis.spring.SqlSessionFactoryBean;
  5. import org.mybatis.spring.annotation.MapperScan;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.beans.factory.annotation.Qualifier;
  8. import org.springframework.context.annotation.Bean;
  9. import org.springframework.context.annotation.Configuration;
  10. /*
  11. * 主库的配置
  12. */
  13. @Configuration
  14. @MapperScan(basePackages = "com.xxxx.xxxx.logmapper",sqlSessionFactoryRef = "secondarySqlSessionFactory")
  15. public class LogDatabaseConfig{
  16.  
  17. @Autowired
  18. @Qualifier("secondaryDataSource")
  19. private DataSource secondaryDataSource;
  20.  
  21. @Bean(name = "secondarySqlSessionFactory")
  22. public SqlSessionFactory sqlSessionFactory() throws Exception {
  23. SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
  24. sessionFactoryBean.setDataSource(secondaryDataSource);
  25. return sessionFactoryBean.getObject();
  26. }
  27. } // class LogDatabaseConfig

3. 使用

spring boot多数据源配置示例的更多相关文章

  1. Spring Boot多数据源配置(二)MongoDB

    在Spring Boot多数据源配置(一)durid.mysql.jpa 整合中已经讲过了Spring Boot如何配置mysql多数据源.本篇文章讲一下Spring Boot如何配置mongoDB多 ...

  2. spring boot多数据源配置(mysql,redis,mongodb)实战

    使用Spring Boot Starter提升效率 虽然不同的starter实现起来各有差异,但是他们基本上都会使用到两个相同的内容:ConfigurationProperties和AutoConfi ...

  3. spring boot(12)-数据源配置原理

    本篇讲的不仅是数据源配置,这也是spring boot实现自动配置的一部分.要理解数据源的配置原理,首先要理解第十篇tomcat连接池的配置 数据源配置源码 这里截取org.springframewo ...

  4. spring boot 多数据源配置与使用

    在介绍使用JdbcTemplate和Spring-data-jpa时,都使用了单数据源.在单数据源的情况下,Spring Boot的配置非常简单,只需要在application.properties文 ...

  5. 三、Spring Boot 多数据源配置

    下面一个Java类是已经写好的根据配置文件动态创建多dataSource的代码,其原理也很简单,就是读取配置文件,根据配置文件中配置的数据源数量,动态创建dataSource并注册到Spring中. ...

  6. Spring Boot Druid数据源配置

    package com.hgvip.config; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.su ...

  7. 21. Spring Boot Druid 数据源配置解析

    1.数据源配置属性类源码 package org.springframework.boot.autoconfigure.jdbc; @ConfigurationProperties( prefix = ...

  8. Spring Boot多数据源配置与使用

    在单数据源的情况下,Spring Boot的配置非常简单,只需要在application.properties文件中配置连接参数即可.但是往往随着业务量发展,我们通常会进行数据库拆分或是引入其他数据库 ...

  9. Spring Boot (14) 数据源配置原理

    数据源配置源码 这里截取org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration的部分源码,主要介绍Tomcat和Hika ...

随机推荐

  1. 搭建简单的Habernate环境(一)

    一.开篇 下载Habernate所需要的jar包和mysql驱动. 二.建立java项目并且导入所需要的包 三.建立实体类和配置映射文件 user实体类 package testPackage; pu ...

  2. JavaScript系列--浅析原型链与继承

    一.前言 继承是面向对象(OOP)语言中的一个最为人津津乐道的概念.许多面对对象(OOP)语言都支持两种继承方式::接口继承 和 实现继承 . 接口继承只继承方法签名,而实现继承则继承实际的方法.由于 ...

  3. JQuery事件绑定,bind与on区别

    jquery事件绑定bind:向匹配元素添加一个或多个事件处理器 $(selector).bind("click",data,function); live:向当前或未来的匹配元素 ...

  4. tp5控制器调用,方法调用

      <?php //命名空间 namespace app\index\controller; use app\admin\controller\Deer; class User{ public ...

  5. Python中int,bool,str,格式化,少量is,已经for循环练习

    1.整数 ​ 十进制转化为二进制 ​ xxx.bit_length(). #求十进制数转化成二进制时所占用的位数 2.布尔值 ​ bool # 布尔值 - - 用于条件使用 ​ True 真 ​ Fa ...

  6. Python内置数据结构之字典dict

    1. 字典 字典是Python中唯一的内置映射类型,其中的值不按顺序排列,而是存储在键下.键可能是数(整数索引).字符串或元组.字典(日常生活中的字典和Python字典)旨在让你能够轻松地找到特定的单 ...

  7. 路飞学城Python-Day36

    24-记录的增删改查 1. 插入完整数据(顺序插入) 语法一: INSERT INTO 表名(字段1,字段2,字段3…字段n) VALUES(值1,值2,值3…值n);   语法二: INSERT I ...

  8. zoj 3471 Most Powerful(状压dp+Tsp问题+连续性问题)

    上来直接一波敲键盘,直接套Tsp问题的代码 然后WA 发现貌似这道题没有连续性. Tsp问题是一条路径,一个点到另一个点,多了一个限制,所以就需要加多一维 而这道题没有限制,也就是说那一维不需要加,我 ...

  9. JAVA 重载方法,参数为NULL时,调用的处理 (精确性原则)

    引子:大家可以思考一下下面程序的输出结果 public class TestNull { public void show(String a){ System.out.println("St ...

  10. Jenkins学习总结(5)——免费DevOps开源工具简介

    一:开发工具 1.版本控制系统 Git Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理. 2.代码托管平台 GitLab GitLab是一个利用Ruby on ...