diff --git a/druid-spring-boot-starter/README.md b/druid-spring-boot-starter/README.md index 26d5ebc985..ee80e57fe7 100644 --- a/druid-spring-boot-starter/README.md +++ b/druid-spring-boot-starter/README.md @@ -3,93 +3,97 @@ Spring Boot with Druid support,help you simplify Druid config in Spring Boot. ### 如何使用 -在Spring Boot项目的pom.xml中添加以下依赖: +在 Spring Boot 项目的```pom.xml```中添加以下依赖: ```xml com.alibaba druid-spring-boot-starter - 1.1.0 + 1.1.1 ``` ### 配置项 Druid Spring Boot Starter 配置项参数名称完全遵照Druid,你可以通过自定义配置去覆盖默认值。 ```xml # JDBC配置 -spring.datasource.url= # 或spring.datasource.druid.url= -spring.datasource.username= # 或spring.datasource.druid.username= -spring.datasource.password= # 或spring.datasource.druid.password= -spring.datasource.driver-class-name= #或 spring.datasource.druid.driver-class-name= +spring.datasource.druid.url= # 或spring.datasource.url= +spring.datasource.druid.username= # 或spring.datasource.username= +spring.datasource.druid.password= # 或spring.datasource.password= +spring.datasource.druid.driver-class-name= #或 spring.datasource.driver-class-name= -# 连接池配置,说明请参考Druid Wiki,配置_DruidDataSource参考配置 -spring.datasource.druid.filters= # 默认值为stat,配置多个请以英文逗号分隔,如stat,wall,log4j -spring.datasource.druid.initialSize= -spring.datasource.druid.minIdle= -spring.datasource.druid.maxActive= -spring.datasource.druid.maxWait= -spring.datasource.druid.timeBetweenEvictionRunsMillis= -spring.datasource.druid.minEvictableIdleTimeMillis= -spring.datasource.druid.validationQuery= -spring.datasource.druid.testWhileIdle= -spring.datasource.druid.testOnBorrow= -spring.datasource.druid.testOnReturn= -spring.datasource.druid.poolPreparedStatements= -spring.datasource.druid.maxPoolPreparedStatementPerConnectionSize= -# Druid Spring Boot Starter不仅限于对以上连接池配置项的支持,DruidDataSource提供set方法的属性都可在此进行配置,但需自行检查是否生效。 +# 连接池配置,说明请参考Druid Wiki,DruidDataSource配置属性列表 +spring.datasource.druid.initial-size= +spring.datasource.druid.max-active= +spring.datasource.druid.min-idle= +spring.datasource.druid.max-wait= +spring.datasource.druid.pool-prepared-statements= +spring.datasource.druid.max-pool-prepared-statement-per-connection-size= +spring.datasource.druid.max-open-prepared-statements= #等价于上面的max-pool-prepared-statement-per-connection-size +spring.datasource.druid.validation-query= +spring.datasource.druid.validation-query-timeout= +spring.datasource.druid.test-on-borrow= +spring.datasource.druid.test-on-return= +spring.datasource.druid.test-while-idle= +spring.datasource.druid.time-between-eviction-runs-millis= +spring.datasource.druid.min-evictable-idle-time-millis= +spring.datasource.druid.max-evictable-idle-time-millis= +spring.datasource.druid.filters= #默认值stat,配置多个英文逗号分隔 # WebStatFilter配置,说明请参考Druid Wiki,配置_配置WebStatFilter -spring.datasource.druid.WebStatFilter.enabled= #是否启用StatFilter默认值true -spring.datasource.druid.WebStatFilter.urlPattern= -spring.datasource.druid.WebStatFilter.exclusions= -spring.datasource.druid.WebStatFilter.sessionStatMaxCount= -spring.datasource.druid.WebStatFilter.sessionStatEnable= -spring.datasource.druid.WebStatFilter.principalSessionName= -spring.datasource.druid.WebStatFilter.principalCookieName= -spring.datasource.druid.WebStatFilter.profileEnable= +spring.datasource.druid.web-stat-filter.enabled= #是否启用StatFilter默认值true +spring.datasource.druid.web-stat-filter.urlPattern= +spring.datasource.druid.web-stat-filter.exclusions= +spring.datasource.druid.web-stat-filter.sessionStatMaxCount= +spring.datasource.druid.web-stat-filter.sessionStatEnable= +spring.datasource.druid.web-stat-filter.principalSessionName= +spring.datasource.druid.web-stat-filter.principalCookieName= +spring.datasource.druid.web-stat-filter.profileEnable= # StatViewServlet配置,说明请参考Druid Wiki,配置_StatViewServlet配置 -spring.datasource.druid.StatViewServlet.enabled= # 是否启用StatViewServlet默认值true -spring.datasource.druid.StatViewServlet.urlPattern= -spring.datasource.druid.StatViewServlet.resetEnable= -spring.datasource.druid.StatViewServlet.loginUsername= -spring.datasource.druid.StatViewServlet.loginPassword= -spring.datasource.druid.StatViewServlet.allow= -spring.datasource.druid.StatViewServlet.deny= +spring.datasource.druid.stat-view-servlet.enabled= #是否启用StatViewServlet默认值true +spring.datasource.druid.stat-view-servlet.urlPattern= +spring.datasource.druid.stat-view-servlet.resetEnable= +spring.datasource.druid.stat-view-servlet.loginUsername= +spring.datasource.druid.stat-view-servlet.loginPassword= +spring.datasource.druid.stat-view-servlet.allow= +spring.datasource.druid.stat-view-servlet.deny= -# Spring监控配置,说明请参考Druid Github Wiki,配置_配置WebStatFilter +# Spring监控配置,说明请参考Druid Github Wiki,配置_Druid和Spring关联监控配置 spring.datasource.druid.aop-patterns= # Spring监控AOP切入点,如x.y.z.service.*,配置多个英文逗号分隔 # 如果spring.datasource.druid.aop-patterns要代理的类没有定义interface请设置spring.aop.proxy-target-class=true ``` ### 如何配置多数据源 -添加数据源配置 +1. 添加数据源相关配置 ```xml spring.datasource.druid.one.url= spring.datasource.druid.one.username= spring.datasource.druid.one.password= spring.datasource.druid.one.driver-class-name= -spring.datasource.druid.one.maxActive= +spring.datasource.druid.one.max-active= ... spring.datasource.druid.two.url= spring.datasource.druid.two.username= spring.datasource.druid.two.password= spring.datasource.druid.two.driver-class-name= -spring.datasource.druid.two.maxActive= +spring.datasource.druid.two.max-active= ... ``` -使用```DruidDataSourceBuilder```创建数据源 +2. 使用```DruidDataSourceBuilder```创建数据源 ```java - @Primary - @ConfigurationProperties("spring.datasource.druid.one") - @Bean - public DataSource dataSourceOne(){ - return DruidDataSourceBuilder.create().build(); - } - @ConfigurationProperties("spring.datasource.druid.two") - @Bean - public DataSource dataSourceTwo(){ - return DruidDataSourceBuilder.create().build(); - } +@Bean +@Primary +public DataSource dataSourceOne(Environment env){ + return DruidDataSourceBuilder + .create() + .build(env, "spring.datasource.druid.one."); +} +@Bean +public DataSource dataSourceTwo(Environment env){ + return DruidDataSourceBuilder + .create() + .build(env, "spring.datasource.druid.two."); +} ``` ### 演示 diff --git a/druid-spring-boot-starter/src/test/resources/config-template.properties b/druid-spring-boot-starter/src/test/resources/config-template.properties index ab42f074ee..1113139141 100644 --- a/druid-spring-boot-starter/src/test/resources/config-template.properties +++ b/druid-spring-boot-starter/src/test/resources/config-template.properties @@ -1,24 +1,26 @@ ######Druid数据源配置###### # JDBC配置 -spring.datasource.url= #别名为spring.datasource.druid.url -spring.datasource.username= #别名为spring.datasource.druid.username -spring.datasource.password= #别名为spring.datasource.druid.password -spring.datasource.driver-class-name= #别名为spring.datasource.druid.driver-class-name,非必填项可通过url解析 +spring.datasource.druid.url= # 或spring.datasource.url= +spring.datasource.druid.username= # 或spring.datasource.username= +spring.datasource.druid.password= # 或spring.datasource.password= +spring.datasource.druid.driver-class-name= #或 spring.datasource.driver-class-name= + # 连接池配置,下面配置说明请参考Druid Github Wiki,配置_DruidDataSource参考配置 spring.datasource.druid.initial-size= -spring.datasource.druid.min-idle= spring.datasource.druid.max-active= +spring.datasource.druid.min-idle= spring.datasource.druid.max-wait= -spring.datasource.druid.time-between-eviction-runs-millis= -spring.datasource.druid.min-evictable-idle-time-millis= -spring.datasource.druid.max-evictable-idle-time-millis= +spring.datasource.druid.pool-prepared-statements= +spring.datasource.druid.max-pool-prepared-statement-per-connection-size= +spring.datasource.druid.max-open-prepared-statements= #等价于上面的max-pool-prepared-statement-per-connection-size spring.datasource.druid.validation-query= spring.datasource.druid.validation-query-timeout= spring.datasource.druid.test-on-borrow= spring.datasource.druid.test-on-return= spring.datasource.druid.test-while-idle= -spring.datasource.druid.pool-prepared-statements= -spring.datasource.druid.max-pool-prepared-statement-per-connection-size= +spring.datasource.druid.time-between-eviction-runs-millis= +spring.datasource.druid.min-evictable-idle-time-millis= +spring.datasource.druid.max-evictable-idle-time-millis= spring.datasource.druid.filters= #默认值stat,配置多个英文逗号分隔 ######Druid监控配置###### @@ -39,6 +41,6 @@ spring.datasource.druid.stat-view-servlet.loginUsername= spring.datasource.druid.stat-view-servlet.loginPassword= spring.datasource.druid.stat-view-servlet.allow= spring.datasource.druid.stat-view-servlet.deny= -#下面配置说明请参考Druid Github Wiki,配置_配置WebStatFilter +#下面配置说明请参考Druid Github Wiki,配置_Druid和Spring关联监控配置 spring.datasource.druid.aop-patterns= #Spring监控AOP切入点,如x.y.z.service.*,配置多个英文逗号分隔 #如果spring.datasource.druid.aop-patterns要代理的类没有定义interface请设置spring.aop.proxy-target-class=true