From 2202a8fa6fca28bdbe4f965b7a832a1e8db1a6d9 Mon Sep 17 00:00:00 2001 From: trang Date: Sun, 8 Apr 2018 16:36:15 +0800 Subject: [PATCH] doc --- docs/Druid 多数据源支持.md | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/docs/Druid 多数据源支持.md b/docs/Druid 多数据源支持.md index cab7675..deaff49 100644 --- a/docs/Druid 多数据源支持.md +++ b/docs/Druid 多数据源支持.md @@ -1,14 +1,14 @@ # Druid 多数据源支持 -1.0.2 版本新增了支持多数据源的 DruidDataSource2,Starter 可以自动将 `spring.datasource` 和 `spring.datasource.druid` 开头的属性注入到每一个数据源,用户只需要声明每个数据源单独的属性即可。 +1.0.2 版本新增了支持多数据源的 DruidDataSource2,druid-starter 可以自动将 `spring.datasource` 和 `spring.datasource.druid` 开头的属性注入到每一个数据源,用户只需要声明每个数据源单独的属性即可。 -1.1.2 版本则更进一步,改进了多数据源的注册方式,无需任何代码,由 Starter 自动发现配置并注册到 ApplicationContext,旨在简化开发人员的劳动力。 +1.1.2 版本则更进一步,改进了多数据源的注册方式,无需任何代码,由 druid-starter 自动发现配置并注册到 ApplicationContext,旨在简化开发人员的劳动力。 ## 使用方式 -编辑 application 配置文件,Starter 会将 `spring.datasource.druid.data-sources` 开头的的属性注入到 Map 中,并根据该 Map 构建数据源。 - +编辑 application 配置文件,druid-starter 会将 `spring.datasource.druid.data-sources` 开头的的属性注入到 Map 中,并根据该 Map 构建数据源。 + ```yaml spring: autoconfigure: @@ -21,8 +21,6 @@ spring: username: root password: 123456 druid: - username: root - password: 123456      ## 多数据源的标识,若该属性存在则为多数据源环境,不存在则为单数据源环境      data-sources: ### master 数据源的配置,以下为 master 数据源独有的配置 @@ -50,11 +48,11 @@ spring: ## 原理 ### 公共配置 -多数据源其实很好实现,编写 N 个数据源的配置,并且声明 N 个 Bean 即可,但带来的一个问题是各数据源之间存在大量相同的配置,每个数据源全部声明一遍既繁琐又无用,为了解决这个问题,Starter 中新增了两个类:DruidDataSource2 和 DruidDataSource2Support。 +多数据源其实很好实现,编写 N 个数据源的配置,并且声明 N 个 Bean 即可,但带来的一个问题是各数据源之间存在大量相同的配置,每个数据源全部声明一遍既繁琐又无用,为了解决这个问题,druid-starter 中新增了两个类:DruidDataSource2 和 AbstractDruidDataSource2。 -其中 DruidDataSource2Support 是个抽象类,继承自 com.alibaba.druid.pool.DruidDataSource,主要作用是自动注入 `spring.datasource` 和 `spring.datasource.druid` 开头的属性,并作为 parent bean 为各个数据源实例提供公共配置。 +其中 AbstractDruidDataSource2 是个抽象类,继承自 com.alibaba.druid.pool.DruidDataSource,主要作用是自动注入 `spring.datasource` 和 `spring.datasource.druid` 开头的属性,并作为 parent bean 为各个数据源实例提供公共配置。 -DruidDataSource2 继承自 DruidDataSource2Support,内部没有任何代码,目的是继承 DruidDataSource2Support 中的已注入的配置,同时可以注入各数据源单独的配置,如遇到相同的属性会覆盖父类的同名属性。 +DruidDataSource2 继承自 AbstractDruidDataSource2,内部没有任何代码,目的是继承 AbstractDruidDataSource2 中的已注入的配置,同时可以注入各数据源单独的配置,如遇到相同的属性会覆盖父类的同名属性。 也就是说,以下两种方式是等价的: @@ -92,9 +90,9 @@ spring: ### 自动配置 -Starter 判断是否多数据源的条件是 application 文件中是否存在 `spring.datasource.druid.data-sources` 属性,若存在即为多数据源环境,不存在则为单数据源环境。 +druid-starter 判断是否多数据源的条件是 application 文件中是否存在 `spring.datasource.druid.data-sources` 属性,若存在即为多数据源环境,不存在则为单数据源环境。 -多数据源环境下,Starter 会将 `spring.datasource.druid.data-sources` 开头的属性注入到 Map 中,然后遍历该 Map,并通过构造 BeanDefinition 的方式来构造各个数据源,最后通过 PropertySourcesBinder 将各数据源单独的属性注入到各数据源。 +多数据源环境下,druid-starter 会将 `spring.datasource.druid.data-sources` 开头的属性注入到 Map 中,然后遍历该 Map,并通过构造 BeanDefinition 的方式来构造各个数据源,最后通过 PropertySourcesBinder 将各数据源单独的属性注入到各数据源。 ## 演示