`

167.Spring Boot 优雅的使用Druid

阅读更多

 

 

需求缘起:

      印象之中,在很早的博客中在spring boot中集成过Druid,那时候需要配置东西也比较多,随着技术的成熟和稳定,现在有更简单的集成方式了,本篇博客就是告诉你如何优雅的进行集成。

 

 

本节大纲:

一、如何使用
二、配置属性
三、如何配置多数据源
四、如何配置Filter

 

       接下来看下具体的内容:

 

一、如何使用

1.1 Spring Boot 项目中加入druid-spring-boot-starter依赖

<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>druid-spring-boot-starter</artifactId>
   <version>1.1.3</version>
</dependency>
 

1.2添加配置

spring.datasource.url= 
spring.datasource.username=
spring.datasource.password=
# ...其他配置(可选,不是必须的,使用内嵌数据库的话上述三项也可省略不填)
 

 

二、配置属性

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

2.1 JDBC 配置

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=
 

2.2连接池配置

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= #和上面的等价
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= #配置多个英文逗号分隔
....//more
 

2.3监控配置

# WebStatFilter配置,说明请参考Druid Wiki,配置_配置WebStatFilter
spring.datasource.druid.web-stat-filter.enabled= #是否启用StatFilter默认值true
spring.datasource.druid.web-stat-filter.url-pattern=
spring.datasource.druid.web-stat-filter.exclusions=
spring.datasource.druid.web-stat-filter.session-stat-enable=
spring.datasource.druid.web-stat-filter.session-stat-max-count=
spring.datasource.druid.web-stat-filter.principal-session-name=
spring.datasource.druid.web-stat-filter.principal-cookie-name=
spring.datasource.druid.web-stat-filter.profile-enable=
 
# StatViewServlet配置,说明请参考Druid Wiki,配置_StatViewServlet配置
spring.datasource.druid.stat-view-servlet.enabled= #是否启用StatViewServlet默认值true
spring.datasource.druid.stat-view-servlet.url-pattern=
spring.datasource.druid.stat-view-servlet.reset-enable=
spring.datasource.druid.stat-view-servlet.login-username=
spring.datasource.druid.stat-view-servlet.login-password=
spring.datasource.druid.stat-view-servlet.allow=
spring.datasource.druid.stat-view-servlet.deny=
 
# 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
 

Druid Spring Boot Starter 不仅限于对以上配置属性提供支持,DruidDataSource 内提供setter方法的可配置属性都将被支持。你可以参考WIKI文档或通过IDE输入提示来进行配置。配置文件的格式你可以选择.properties.yml,效果是一样的,在配置较多的情况下推荐使用.yml

 

三、如何配置多数据源

3.1添加配置

spring.datasource.url=
spring.datasource.username=
spring.datasource.password=
 
# Druid 数据源配置,继承spring.datasource.* 配置,相同则覆盖
...
spring.datasource.druid.initial-size=5
spring.datasource.druid.max-active=5
...
 
# Druid 数据源 1 配置,继承spring.datasource.druid.* 配置,相同则覆盖
...
spring.datasource.druid.one.max-active=10
spring.datasource.druid.one.max-wait=10000
...
 
# Druid 数据源 2 配置,继承spring.datasource.druid.* 配置,相同则覆盖
...
spring.datasource.druid.two.max-active=20
spring.datasource.druid.two.max-wait=20000
...
 

 

3.2创建数据源

@Primary
@Bean
@ConfigurationProperties("spring.datasource.druid.one")
public DataSource dataSourceOne(){
    return DruidDataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties("spring.datasource.druid.two")
public DataSource dataSourceTwo(){
    return DruidDataSourceBuilder.create().build();
}
 
 

 

四、如何配置 Filter

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

# 配置StatFilter 
spring.datasource.druid.filter.stat.db-type=h2
spring.datasource.druid.filter.stat.log-slow-sql=true
spring.datasource.druid.filter.stat.slow-sql-millis=2000
 
# 配置WallFilter 
spring.datasource.druid.filter.wall.enabled=true
spring.datasource.druid.filter.wall.db-type=h2
spring.datasource.druid.filter.wall.config.delete-allow=false
spring.datasource.druid.filter.wall.config.drop-table-allow=false
 
# 其他 Filter 配置不再演示
 

目前为以下 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 来禁用它。

本文转载:https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter/

 

 à悟空学院:https://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!

SpringBoot视频:http://t.cn/A6ZagYTi

Spring Cloud视频:http://t.cn/A6ZagxSR

SpringBoot Shiro视频:http://t.cn/A6Zag7IV

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringData和JPA视频:http://t.cn/A6Zad1OH

SpringSecurity5.0视频:http://t.cn/A6ZadMBe

Sharding-JDBC分库分表实战http://t.cn/A6ZarrqS

分布式事务解决方案「手写代码」:http://t.cn/A6ZaBnIr

 

分享到:
评论

相关推荐

    15. Spring Boot使用Druid和监控配置【从零开始学Spring Boot】

    spring.datasource.druid.test-on-borrow=true spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false spring.datasource.username=root spring.datasource.password=root ``` 或者在YAML格式中: ...

    16. Spring Boot使用Druid(编程注入)【从零开始学Spring Boot】

    在本篇【从零开始学Spring Boot】系列中,我们将探讨如何在Spring Boot项目中使用Druid数据源进行编程注入。Druid是一个优秀的数据库连接池,它提供了强大的监控和扩展功能,是许多企业级应用首选的数据源解决方案。...

    Spring Boot集成Druid

    spring.datasource.druid.stat-view-servlet.login-password=123456 spring.datasource.druid.web-stat-filter.enabled=true spring.datasource.druid.web-stat-filter.url-pattern=/* spring.datasource.druid.web-...

    spring-boot+druid整合

    spring.datasource.druid.url=jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC spring.datasource.druid.username=root spring.datasource.druid.password=root spring.datasource.druid.initial...

    spring-boot-druid

    spring.datasource.druid.stat-view-servlet.login-password=admin ``` 四、Druid的其他特性 4. 连接池监控:Druid提供丰富的统计信息,包括连接池状态、SQL执行统计等,有助于分析和优化数据库性能。 5. SQL拦截器...

    spring-boot_mysql_mybatis_druid

    在IT领域,Spring Boot、MySQL、MyBatis和Druid是常见的开发工具和技术,它们各自在Web应用开发中扮演着重要角色。让我们深入探讨一下这些技术及其整合。 **Spring Boot** 是一个基于Spring框架的快速开发工具,它...

    druid-spring-boot-starter-1.1.9-API文档-中文版.zip

    赠送jar包:druid-spring-boot-starter-1.1.9.jar; 赠送原API文档:druid-spring-boot-starter-1.1.9-javadoc.jar; 赠送源代码:druid-spring-boot-starter-1.1.9-sources.jar; 赠送Maven依赖信息文件:druid-...

    study-spring-boot-druid.zip

    spring.datasource.druid.initial-size=5 spring.datasource.druid.min-idle=5 spring.datasource.druid.max-active=20 ``` 3. **自定义配置类**:如果需要更复杂的配置,可以创建一个@Configuration类,扩展`...

    简单Spring boot和druid监控demo

    spring.datasource.druid.test-on-borrow=true spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false spring.datasource.username=root spring.datasource.password=root ``` 配置完成后,Druid的...

    druid-spring-boot-starter-1.2.8-API文档-中文版.zip

    赠送jar包:druid-spring-boot-starter-1.2.8.jar; 赠送原API文档:druid-spring-boot-starter-1.2.8-javadoc.jar; 赠送源代码:druid-spring-boot-starter-1.2.8-sources.jar; 赠送Maven依赖信息文件:druid-...

    3-7 Spring Boot 集成 Druid 监控数据源.pdf1

    集成 Druid 后,Spring Boot 应用不仅可以使用高性能的数据库连接池,还能享受到其丰富的监控功能,如监控后台、SQL 执行统计、连接池状态查看等,这些都有助于优化数据库操作,提高系统的整体性能和可维护性。...

    spring boot 整合mybtis druid 多数据源 源代码

    通过阅读和理解这些代码,你可以深入理解如何在实际项目中实现Spring Boot、MyBatis和Druid的整合,以及如何优雅地处理多数据源的切换。 总的来说,Spring Boot、MyBatis和Druid的整合为开发者提供了强大的数据库...

    druid-spring-boot-starter-1.2.8.jar

    druid-spring-boot-starter-1.2.8.jar

    Spring Boot druid 以及相关sql、Spring监控配置demo

    现在,我们已经掌握了在Spring Boot项目中集成Druid、配置SQL监控以及使用Spring Actuator的基础知识。在实际操作中,你可以根据项目需求调整配置,例如设置自定义的拦截器、连接池健康检查策略等。这个"Spring Boot...

    spring boot 整合mybtis druid 多数据源 源代码。

    在IT行业中,Spring Boot、MyBatis和Druid都是非常重要的技术组件,它们分别在微服务开发、数据库操作和数据库连接池管理方面发挥着关键作用。这篇内容将深入讲解如何在Spring Boot项目中整合MyBatis和Druid,并实现...

    参照阿里druid整理druid-spring-boot-starter的demo

    这个"参照阿里druid个人整理druid-spring-boot-starter可运行demo"是基于Spring Boot 2.x版本的,包含了Druid的基本配置和使用。为了构建一个完整的Druid配置,你需要以下几个步骤: 1. **依赖添加**:在`pom.xml`...

    druid-spring-boot-starter-1.1.10-API文档-中文版.zip

    赠送jar包:druid-spring-boot-starter-1.1.10.jar; 赠送原API文档:druid-spring-boot-starter-1.1.10-javadoc.jar; 赠送源代码:druid-spring-boot-starter-1.1.10-sources.jar; 赠送Maven依赖信息文件:druid-...

    Spring Boot:数据库的操作案例

    1.Spring Boot 整合 JDBC 案例 2.Spring Boot 整合 Druid 数据源案例 3.Spring Boot 整合 MyBatis 案例 4.Spring Boot 整合 JPA 案例

    SpringBoot2.0整合Druid连接池详细步骤.docx

    app.datasource.cbssxin.druid.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500 ``` 配置 Druid 管理后台 在 SpringBoot 项目中,需要配置 Druid 管理后台,以便于查看数据库连接池...

    源代码主要用于学习:1. Spring Boot+Hadoop+Hive+Hbase实现数据基本操作,H

    源代码主要用于学习:1. Spring Boot+Hadoop+Hive+Hbase实现数据基本操作,Hive数据源使用Alibaba DruidDataSource,以及JDBCTemplate操作数

Global site tag (gtag.js) - Google Analytics