zoukankan      html  css  js  c++  java
  • pringBoot多数据源配置详细教程

    目标

    • 简单多数据配置
    • JdbcTemplate 多数据源配置

    多数据源配置

    首先是配置文件

    • 这里采用yml配置文件,其他类型配置文件同理
    • 我配置了两个数据源,一个名字叫ds1数据源,一个名字叫ds2数据源,如果你想配置更多的数据源,继续加就行了
    spring:
     # 数据源配置
      datasource:
        ds1: #数据源1
          driver-class-name: com.mysql.jdbc.Driver # mysql的驱动你可以配置别的关系型数据库
          url: jdbc:mysql://ip:3306/db1 #数据源地址
          username: root # 用户名
          password: root # 密码
        ds2: # 数据源2
          driver-class-name: com.mysql.jdbc.Driver # mysql的驱动你可以配置别的关系型数据库
          url: jdbc:mysql://ip:3307/db2#数据源地址
          username: root # 用户名
          password: root # 密码

    增加一个Springboot的配置类

    /**
     * 多数据源配置
     */
    @Configuration
    public class DataSourceConfig {
    
        //主数据源配置 ds1数据源
        @Primary
        @Bean(name = "ds1DataSourceProperties")
        @ConfigurationProperties(prefix = "spring.datasource.ds1")
        public DataSourceProperties ds1DataSourceProperties() {
            return new DataSourceProperties();
        }
    
        //主数据源 ds1数据源
        @Primary
        @Bean(name = "ds1DataSource")
        public DataSource ds1DataSource(@Qualifier("ds1DataSourceProperties") DataSourceProperties dataSourceProperties) {
            return dataSourceProperties.initializeDataSourceBuilder().build();
        }
    
        //第二个ds2数据源配置
        @Bean(name = "ds2DataSourceProperties")
        @ConfigurationProperties(prefix = "spring.datasource.ds2")
        public DataSourceProperties ds2DataSourceProperties() {
            return new DataSourceProperties();
        }
    
        //第二个ds2数据源
        @Bean("ds2DataSource")
        public DataSource ds2DataSource(@Qualifier("ds2DataSourceProperties") DataSourceProperties dataSourceProperties) {
            return dataSourceProperties.initializeDataSourceBuilder().build();
        }
    
    }

    JdbcTemplate多数据源配置

    增加一个Springboot配置类

    /**
     * JdbcTemplate多数据源配置
     * 依赖于数据源配置
     *
     * @see DataSourceConfig
     */
    @Configuration
    public class JdbcTemplateDataSourceConfig {
    
        //JdbcTemplate主数据源ds1数据源
        @Primary
        @Bean(name = "ds1JdbcTemplate")
        public JdbcTemplate ds1JdbcTemplate(@Qualifier("ds1DataSource") DataSource dataSource) {
            return new JdbcTemplate(dataSource);
        }
    
        //JdbcTemplate第二个ds2数据源
        @Bean(name = "ds2JdbcTemplate")
        public JdbcTemplate ds2JdbcTemplate(@Qualifier("ds2DataSource") DataSource dataSource) {
            return new JdbcTemplate(dataSource);
        }
    }

    传送门

  • 相关阅读:
    NPM 使用介绍
    MySql(十):MySQL性能调优——MySQL Server性能优化
    Vue(一):简介和安装
    MySql(九):MySQL性能调优——Schema设计的性能优化
    Java数据结构和算法(十):二叉树
    SpringBoot+SpringAOP+Java自定义注解+mybatis实现切库读写分离
    Golang groupcache LRU 缓存简介与用法
    Ceph剖析:数据分布之CRUSH算法与一致性Hash
    如何用Github钩子做自动部署
    使用Golang的singleflight防止缓存击穿
  • 原文地址:https://www.cnblogs.com/JonaLin/p/12703968.html
Copyright © 2011-2022 走看看