当前位置:   article > 正文

Spring boot 使用Druid数据源_spring.datasource.druid.one.validation-query

spring.datasource.druid.one.validation-query

Druid 为监控而生的数据库连接池

由于工作需要,最近一个项目是Spring Boot架构的需要使用Druid作为数据源,所以整理了这样一篇文章

废话不多说,现在开始表演。

Druid Spring Boot Starter 用于在Spring Boot项目中轻松集成Druid数据库连接池和监控。

如何使用

  1. 在 Spring Boot 项目中加入druid-spring-boot-starter依赖

    1. maven:
    2. <dependency>
    3. <groupId>com.alibaba</groupId>
    4. <artifactId>druid-spring-boot-starter</artifactId>
    5. <version>1.1.6</version>
    6. </dependency>
    1. Gradle:
    2. compile 'com.alibaba:druid-spring-boot-starter:1.1.6'

  2. 添加配置

    1. spring.datasource.url=
    2. spring.datasource.username=
    3. spring.datasource.password=
    4. #其他配置(可选,不是必须的)

    配置属性

    Druid Spring Boot Starter 配置属性的名称完全遵照 Druid,你可以通过 Spring Boot 配置文件来配置Druid数据库连接池和监控,如果没有配置则使用默认值。

    1. JDBC 配置
    2. spring.datasource.druid.url= # 或spring.datasource.url=
    3. spring.datasource.druid.username= # 或spring.datasource.username=
    4. spring.datasource.druid.password= # 或spring.datasource.password=
    5. spring.datasource.druid.driver-class-name= #或 spring.datasource.driver-class-name=
    1. 连接池配置
    2. spring.datasource.druid.initial-size=
    3. spring.datasource.druid.max-active=
    4. spring.datasource.druid.min-idle=
    5. spring.datasource.druid.max-wait=
    6. spring.datasource.druid.pool-prepared-statements=
    7. spring.datasource.druid.max-pool-prepared-statement-per-connection-size=
    8. spring.datasource.druid.max-open-prepared-statements= #和上面的等价
    9. spring.datasource.druid.validation-query=
    10. spring.datasource.druid.validation-query-timeout=
    11. spring.datasource.druid.test-on-borrow=
    12. spring.datasource.druid.test-on-return=
    13. spring.datasource.druid.test-while-idle=
    14. spring.datasource.druid.time-between-eviction-runs-millis=
    15. spring.datasource.druid.min-evictable-idle-time-millis=
    16. spring.datasource.druid.max-evictable-idle-time-millis=
    17. spring.datasource.druid.filters= #配置多个英文逗号分隔
    1. 监控配置
    2. # WebStatFilter配置,说明请参考Druid Wiki,配置_配置WebStatFilter
    3. spring.datasource.druid.web-stat-filter.enabled= #是否启用StatFilter默认值true
    4. spring.datasource.druid.web-stat-filter.url-pattern=
    5. spring.datasource.druid.web-stat-filter.exclusions=
    6. spring.datasource.druid.web-stat-filter.session-stat-enable=
    7. spring.datasource.druid.web-stat-filter.session-stat-max-count=
    8. spring.datasource.druid.web-stat-filter.principal-session-name=
    9. spring.datasource.druid.web-stat-filter.principal-cookie-name=
    10. spring.datasource.druid.web-stat-filter.profile-enable=
    11. # StatViewServlet配置,说明请参考Druid Wiki,配置_StatViewServlet配置
    12. spring.datasource.druid.stat-view-servlet.enabled= #是否启用StatViewServlet默认值true
    13. spring.datasource.druid.stat-view-servlet.url-pattern=
    14. spring.datasource.druid.stat-view-servlet.reset-enable=
    15. spring.datasource.druid.stat-view-servlet.login-username=
    16. spring.datasource.druid.stat-view-servlet.login-password=
    17. spring.datasource.druid.stat-view-servlet.allow=
    18. spring.datasource.druid.stat-view-servlet.deny=
    19. # Spring监控配置,说明请参考Druid Github Wiki,配置_Druid和Spring关联监控配置
    20. spring.datasource.druid.aop-patterns= # Spring监控AOP切入点,如x.y.z.service.*,配置多个英文逗号分隔
    21. # 如果spring.datasource.druid.aop-patterns要代理的类没有定义interface请设置spring.aop.proxy-target-class=true
    Druid Spring Boot Starter 不仅限于对以上配置属性提供支持,DruidDataSource 内提供setter方法的可配置属性都将被支持。你可以参考WIKI文档或通过IDE输入提示来进行配置。配置文件的格式你可以选择.properties.yml,效果是一样的,在配置较多的情况下推荐使用.yml

如何配置多数据源

  1. 添加配置
    1. spring.datasource.url=
    2. spring.datasource.username=
    3. spring.datasource.password=
    4. # Druid 数据源配置,继承spring.datasource.* 配置,相同则覆盖
    5. ...
    6. spring.datasource.druid.initial-size=5
    7. spring.datasource.druid.max-active=5
    8. ...
    9. # Druid 数据源 1 配置,继承spring.datasource.druid.* 配置,相同则覆盖
    10. ...
    11. spring.datasource.druid.one.max-active=10
    12. spring.datasource.druid.one.max-wait=10000
    13. ...
    14. # Druid 数据源 2 配置,继承spring.datasource.druid.* 配置,相同则覆盖
    15. ...
    16. spring.datasource.druid.two.max-active=20
    17. spring.datasource.druid.two.max-wait=20000
    18. ...
  2. 创建数据源
    1. @Primary
    2. @Bean
    3. @ConfigurationProperties("spring.datasource.druid.one")
    4. public DataSource dataSourceOne(){
    5. return DruidDataSourceBuilder.create().build();
    6. }
    7. @Bean
    8. @ConfigurationProperties("spring.datasource.druid.two")
    9. public DataSource dataSourceTwo(){
    10. return DruidDataSourceBuilder.create().build();
    11. }

    如何配置 Filter

    你可以通过 spring.datasource.druid.filters=stat,wall,log4j ... 的方式来启用相应的内置Filter,不过这些Filter都是默认配置。如果默认配置不能满足你的需求,你可以放弃这种方式,通过配置文件来配置Filter,下面是例子。

    1. # 配置StatFilter
    2. spring.datasource.druid.filter.stat.db-type=h2
    3. spring.datasource.druid.filter.stat.log-slow-sql=true
    4. spring.datasource.druid.filter.stat.slow-sql-millis=2000
    5. # 配置WallFilter
    6. spring.datasource.druid.filter.wall.enabled=true
    7. spring.datasource.druid.filter.wall.db-type=h2
    8. spring.datasource.druid.filter.wall.config.delete-allow=false
    9. spring.datasource.druid.filter.wall.config.drop-table-allow=false

    目前为以下 Filter 提供了配置支持,请参考文档或者根据IDE提示(spring.datasource.druid.filter.*)进行配置。

    • StatFilter
    • WallFilter
    • ConfigFilter
    • EncodingConvertFilter
    • Slf4jLogFilter
    • Log4jFilter
    • Log4j2Filter
    • CommonsLogFilter

    要想使自定义 Filter 配置生效需要将对应 Filter 的 enabled 设置为 true ,Druid Spring Boot Starter 默认会启用 StatFilter,你也可以将其 enabled 设置为 false 来禁用它。

参考文档:
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/46553
推荐阅读
相关标签
  

闽ICP备14008679号