Spring Boot 3 集成 Druid 连接池详解

这篇具有很好参考价值的文章主要介绍了Spring Boot 3 集成 Druid 连接池详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在现代的Java应用中,使用一个高效可靠的数据源是至关重要的。Druid连接池作为一款强大的数据库连接池,提供了丰富的监控和管理功能,成为很多Java项目的首选。本文将详细介绍如何在Spring Boot 3项目中配置数据源,集成Druid连接池,以实现更高效的数据库连接管理。

springboot3 druid,springboot,spring boot,后端,java

Spring Boot 3 配置数据源

Spring Boot 提供了自动配置(auto-configuration)功能,其中包括了对数据源的自动配置,我们只需要在项目中导入spring-boot-starter-jdbc依赖及对应数据源的驱动依赖即可,我们使用的mysql数据库,pom依赖如下:

<!-- SPRINGBOOT JDBC -->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- Mysql驱动包 -->
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.33</version>
</dependency>

配置文件如下:

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://192.168.10.106:3306/xj_doc?characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: root
    password: 123456

Spring Boot默认使用 HikariCP 作为连接池,这是因为 HikariCP 提供了卓越的性能、低延迟和高效的资源利用。Spring Boot默认情况下会自动检测 classpath 下是否存在 HikariCP。如果存在,Spring Boot 会将 HikariCP 作为默认的数据库连接池。如果 classpath 下没有 HikariCP,Spring Boot 会尝试检测其他连接池的存在,选择顺序如下:

springboot3 druid,springboot,spring boot,后端,java

如果不想通过自动检测的方式,我们可以在配置文件application.yml 中设置 spring.datasource.type 属性,指定要使用的连接池类型的完整类名,示例如下:

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource

Spring Boot 3 集成 Druid

Druid网址

Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。在国内是是数据库连接池的首选。

Druid的github网址:https://github.com/alibaba/druid

springboot3 druid,springboot,spring boot,后端,java

引入依赖

在Spring Boot 3.x版本中引入依赖如下:

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

添加配置### 添加配置

配置文件如下:


spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://192.168.10.106:3306/xj_doc?characterEncoding=utf8&serverTimezone=Asia/Shanghai
    username: root
    password: 123456
    # druid 连接池管理
    druid:
      # 初始化时建立物理连接的个数
      initial-size: 5
      # 连接池的最小空闲数量
      min-idle: 5
      # 连接池最大连接数量
      max-active: 20
      # 获取连接时最大等待时间,单位毫秒
      max-wait: 60000
      # 申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
      test-while-idle: true
      # 既作为检测的间隔时间又作为testWhileIdel执行的依据
      time-between-eviction-runs-millis: 60000
      # 销毁线程时检测当前连接的最后活动时间和当前时间差大于该值时,关闭当前连接(配置连接在池中的最小生存时间)
      min-evictable-idle-time-millis: 30000
      # 用来检测数据库连接是否有效的sql 必须是一个查询语句(oracle中为 select 1 from dual)
      validation-query: select 'x'
      # 申请连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为true
      test-on-borrow: false
      # 归还连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为true
      test-on-return: false
      # 是否缓存preparedStatement, 也就是PSCache,PSCache对支持游标的数据库性能提升巨大,比如说oracle,在mysql下建议关闭。
      pool-prepared-statements: false
      # 置监控统计拦截的filters,去掉后监控界面sql无法统计,stat: 监控统计、Slf4j:日志记录、waLL: 防御sqL注入
      filters: stat,wall,slf4j
      # 要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动触发修改为true。在Druid中,不会存在Oracle下PSCache占用内存过多的问题,可以把这个数值配置大一些,比如说100
      max-pool-prepared-statement-per-connection-size: -1
      # 合并多个DruidDataSource的监控数据
      use-global-data-source-stat: true
      # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
      connect-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

      web-stat-filter:
        # 是否启用StatFilter默认值true
        enabled: true
        # 添加过滤规则
        url-pattern: /*
        # 忽略过滤的格式
        exclusions: /druid/*,*.js,*.gif,*.jpg,*.png,*.css,*.ico

      stat-view-servlet:
        # 是否启用StatViewServlet默认值true
        enabled: true
        # 访问路径为/druid时,跳转到StatViewServlet
        url-pattern: /druid/*
        # 是否能够重置数据
        reset-enable: false
        # 需要账号密码才能访问控制台,默认为root
        login-username: druid
        login-password: druid
        # IP白名单
        allow: 127.0.0.1
        # IP黑名单(共同存在时,deny优先于allow)
        deny:

启动项目

启动项目,出现如下日志,则标识数据库连接池已经使用了Druid。

2023-12-09T21:20:31.561+08:00  INFO 26176 --- [           main] c.a.d.s.b.a.DruidDataSourceAutoConfigure : Init DruidDataSource
2023-12-09T21:20:32.328+08:00  INFO 26176 --- [           main] com.alibaba.druid.pool.DruidDataSource   : {dataSource-1} inited

访问页面

项目启动后,我们可以通过访问 Druid 控制台来监控和管理数据库连接池的状态。控制台的访问地址通常是:http://localhost:8080/druid/login.html。

在访问控制台时,系统将要求输入用户名和密码进行身份验证。这些用户名和密码是在项目的配置文件中进行了配置的,

# 需要账号密码才能访问控制台,默认为root
login-username: druid
login-password: druid

springboot3 druid,springboot,spring boot,后端,java

springboot3 druid,springboot,spring boot,后端,java

至此,你已成功配置了数据源并集成了 Druid 连接池。通过合理配置 Druid 连接池的参数,你可以优化数据库连接的性能和资源利用。同时,通过监控功能,你可以实时了解连接池的使用情况,及时发现潜在的问题。

总结

通过本文的介绍,你学会了如何在Spring Boot 3项目中配置数据源,集成Druid连接池,从而提高数据库连接管理的效率。Druid连接池的监控和管理功能可以为你的应用提供更好的性能和可维护性。文章来源地址https://www.toymoban.com/news/detail-831786.html

到了这里,关于Spring Boot 3 集成 Druid 连接池详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • spring boot学习第六篇:SpringBoot 集成WebSocket详解

    1、WebSocket简介 WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。 2、为什么需要WebSocket HTTP 是基于请求响应式的,即通信只能由客户端发起,服务端做出响应,无状态,无连接。 无状态:每次连

    2024年01月21日
    浏览(52)
  • 【SpringBoot3】Spring Boot 3.0 介绍以及新特性

    Spring Boot 3.0 是 Spring Boot 框架的一个重要版本,它在保持了 Spring Boot 的一贯优点的同时,也进行了一些重要的改进和更新。 首先,Spring Boot 3.0 对 Java 版本的要求进行了更新。这个版本要求使用 Java 17 作为最低版本,以利用最新的语言特性和性能改进。如果你正在使用的是

    2024年01月17日
    浏览(87)
  • 【Spring Cloud Gateway】⑥SpringBoot3.x集成SpringDoc指南

    Spring Cloud Gateway 使用 Netty 作为嵌入式服务器,并基于响应式 Spring WebFlux 。做为微服务网关,多个微服务把 API 挂在 Gateway 上,如果查看某个 API 的 Swagger 还要去各个子微服务中去查看,就很不方便,如果能在 Gateway 上直接查看各个微服务的 API 文档,会方便很多,本文以截至

    2024年02月14日
    浏览(44)
  • 解决SpringBoot3整合Druid的兼容性问题

    本文原创作者:谷哥的小弟 作者博客地址:http://blog.csdn.net/lfdfhl 截止目前,Druid对于SpringBoot3的支持不够全面和友好;存在一些兼容性的问题,导致项目报错。 在此,针对该问题提供可行的解决方案;以供各位参考。 请您使用以下依赖: 图示如下: 请勿使用以下依赖: 请

    2024年02月03日
    浏览(48)
  • SpringBoot3整合Druid数据源的解决方案

    druid-spring-boot-3-starter目前最新版本是1.2.20,虽然适配了SpringBoot3,但缺少自动装配的配置文件,会导致加载时报加载驱动异常。 需要手动在resources目录下创建 META-INF/spring/ 目录,并且在 META-INF/spring/ 创建 org.springframework.boot.autoconfigure.AutoConfiguration.imports , 文件中添加如下内容

    2024年03月09日
    浏览(106)
  • springboot3.2报Spring Boot [3.2.0] is not compatible with this Spring Cloud release train

    这个解决也比较简单: 1、直接把springcloud升级为2023.0.0-RC1就行了 2、第二种,直接进行配置,关闭检查,但是微服务的相关服务可能无法使用,需要自行验证 spring.cloud.compatibility-verifier.enabled=false

    2024年02月20日
    浏览(50)
  • Spring Boot整合Druid(druid 和 druid-spring-boot-starter)

    引言 在现代的Web应用开发中,高性能的数据库连接池是确保应用稳定性和响应性的关键因素之一。Druid是一个开源的高性能数据库连接池,具有强大的监控和统计功能,能够在Spring Boot应用中提供出色的数据库连接管理。本文将研究在Spring Boot中集成Druid连接池的步骤,以及如

    2024年01月19日
    浏览(70)
  • Spring Boot集成Kafka详解

    Spring Boot是一个用于构建独立的、生产级的Java应用程序的框架,而Kafka是一种高吞吐量的分布式发布订阅消息系统。在本文中,我们将详细解释如何在Spring Boot项目中集成Kafka。 1. 添加依赖 首先,我们需要在项目的pom.xml文件中添加Spring Boot和Kafka的依赖。 2. 配置Kafka 接下来,

    2024年02月09日
    浏览(41)
  • spring boot集成Elasticsearch-SpringBoot(25)

      搜索引擎(search engine )通常意义上是指:根据特定策略,运用特定的爬虫程序从互联网上搜集信息,然后对信息进行处理后,为用户提供检索服务,将检索到的相关信息展示给用户的系统。   而我们讲解的是捜索的索引和检索,不涉及爬虫程序的内容爬取。大部分公司

    2023年04月09日
    浏览(113)
  • SpringBoot项目集成Druid

    本文将介绍Druid的相关内容以及项目如何集成Druid,请多多指教。 Druid是阿里开源的一个数据库连接池的解决方案。它本身还自带一个监控平台,可以查看时时产生的sql、uri等监控数据,可以排查慢sql、慢请求,方便对sql和项目代码进行调优。 1.1数据库连接池 数据库连接池是

    2024年02月10日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包