<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Druid on Java 技术探秘</title>
    <link>https://www.szlinkroutes.com/tags/druid/</link>
    <description>Recent content in Druid on Java 技术探秘</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    <lastBuildDate>Wed, 03 Jun 2020 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://www.szlinkroutes.com/tags/druid/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>springboot &#43; druid 实现数据源下动态切换</title>
      <link>https://www.szlinkroutes.com/categories/%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/springboot-&#43;-druid-%E5%AE%9E%E7%8E%B0%E6%95%B0%E6%8D%AE%E6%BA%90%E4%B8%8B%E5%8A%A8%E6%80%81%E5%88%87%E6%8D%A2/</link>
      <pubDate>Wed, 03 Jun 2020 00:00:00 +0000</pubDate>
      <guid>https://www.szlinkroutes.com/categories/%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/springboot-&#43;-druid-%E5%AE%9E%E7%8E%B0%E6%95%B0%E6%8D%AE%E6%BA%90%E4%B8%8B%E5%8A%A8%E6%80%81%E5%88%87%E6%8D%A2/</guid>
      <description>springboot + druid 实现数据源下动态切换 1. 项目背景 最近接到一个需求：为多个业务系统开发统一的管理后台，这几个业务系统的相关业务惊人地相似，用的是同一份代码，只是地区、受众不同，因此服务器、数据库都单独分开了。&#xA;项目很明显要用到多数据源，经过在google多方打探，终于了解到基于AbstractRoutingDataSource的多数据源解决方案了。废话不多说，上代码介绍我的实现方式。&#xA;2. 代码实现 2.1 引入多数据源 在 application.yml 引入多数据源配置，这里使用的是阿里的 Druid 连接池：&#xA;# 数据源配置 spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver druid: # 主库数据源 main: url: jdbc:mysql://127.0.0.1:3306/main?useUnicode=true&amp;amp;characterEncoding=utf8&amp;amp;zeroDateTimeBehavior=convertToNull&amp;amp;useSSL=true&amp;amp;serverTimezone=GMT%2B8 username: root password: 123 # 应用数据源 app: # db1 db1: url: jdbc:mysql://127.0.0.1:3306/db1?useUnicode=true&amp;amp;characterEncoding=utf8&amp;amp;zeroDateTimeBehavior=convertToNull&amp;amp;useSSL=true&amp;amp;serverTimezone=GMT%2B8 username: root password: 123 # db2 db2: url: jdbc:mysql://127.0.0.1:3306/db2?useUnicode=true&amp;amp;characterEncoding=utf8&amp;amp;zeroDateTimeBehavior=convertToNull&amp;amp;useSSL=true&amp;amp;serverTimezone=GMT%2B8 username: root password: 123 # ds3 db3: url: jdbc:mysql://127.0.0.1:3306/db3?useUnicode=true&amp;amp;characterEncoding=utf8&amp;amp;zeroDateTimeBehavior=convertToNull&amp;amp;useSSL=true&amp;amp;serverTimezone=GMT%2B8 username: root password: 123 这里一共引入了4个数据源：main、db1、db2、db3&#xA;main: 管理后台的数据源，存放管理后台相关数据，如用户登录数据、系统菜单等 db1: 业务系统1的数据源 db2: 业务系统2的数据源 db3: 业务系统3的数据源 2.</description>
    </item>
  </channel>
</rss>
