SpringBoot Druid迁移HikariCP

之前项目使用的连接池都是Durid(德鲁伊),功能很丰富,记录一下使用方式:

maven导入Durid架包:

 <!-- SPRINGBOOT DRUID -->
 <dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>druid-spring-boot-starter</artifactId>
     <version>1.1.21</version>
 </dependency>

application.yml 配置:

spring:
  # druid数据源配置
  datasource.druid:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://ip:端口号/数据库名?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2b8
    username: root
    password: root
    type: com.alibaba.druid.pool.DruidDataSource
	
	# 能日赚30手赚试玩平台,推荐使用iphone操作
	# https://mp.weixin.qq.com/s?__biz=MzIyODgxNjkyOQ==&mid=100000040&idx=1&sn=47c0245f9dbe70f3ad6b2540209af2c2&chksm=684d60665f3ae97095ba07d8c6804bac4f55dbc6e7100fbb233945f65364df88682d41332eb7&xtrack=1&scene=0&subscene=10000&clicktime=1616647421&enterid=1616647421&ascene=7&devicetype=android-29&version=28000165&nettype=WIFI&abtest_cookie=AAACAA%3D%3D&lang=zh_CN&exportkey=AdxLWFyJlgtM6uFZCpgWtBk%3D&pass_ticket=G8rEeGdox4FPpICRkrKy6ho2QZozCzXi%2Be7gV5bXnQaXoZK2pw4S8Wf2j%2Bt3D8mi&wx_header=1
	
    #druid连接池配置
    # 初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时
    initial-size: 1
    # 最大连接池数量
    max-active: 20
    # 最小连接池数量
    min-idle: 1
    # 获取连接时最大等待时间,单位毫秒
    max-wait: 60000
    # 打开PSCache,并且指定每个连接上PSCache的大小
    pool-prepared-statements: true
    max-pool-prepared-statement-per-connection-size: 20
    max-open-prepared-statements: 20 #和上面的等价
    # 验证连接有效与否的SQL,不同的数据配置不同
    validation-query: select 1 from dual
    validation-query-timeout: 3000
    # 申请连接时执行validationQuery检测连接是否有效
    test-on-borrow: false
    # 归还连接时执行validationQuery检测连接是否有效
    test-on-return: false
    # 执行validationQuery检测连接是否有效
    test-while-idle: true
    # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
    time-between-eviction-runs-millis: 6000
    # 配置一个连接在池中最小生存的时间,单位是毫秒
    min-evictable-idle-time-millis: 300000
    # 通过别名的方式配置扩展插件
    # 监控统计 stat
    # 防御sql注入 wall
    filters: stat,wall
    # WEB方式监控配置
    stat-view-servlet:
      enabled: true  #是否启用StatViewServlet默认值true
      url-pattern: /druid/*
      reset-enable: true
      login-username: admin
      login-password: 123456

配置了web监控方式配置,在拦截器中开放 /druid/* 路径,在浏览器中输入http://ip:端口号/druid/,会进入到durid监控登录界面。
在这里插入图片描述
输入配置中的login-usernamelogin-password 进入监控台
在这里插入图片描述

后面看到出了HikariCP连接池,说比Durid连接池更快,于是尝试更换,springboot 2.x 版本默认连接池就是 HikariCP,所以pom.xml中无需再导入HikariCP的架包,再次导入架包会提示错误

spring:
  # 数据库配置
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://ip:端口号/数据库名?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2b8
    username: root
    password: root
    type: com.zaxxer.hikari.HikariDataSource

	# 能日赚30手赚试玩平台,推荐使用iphone操作
	# https://mp.weixin.qq.com/s?__biz=MzIyODgxNjkyOQ==&mid=100000040&idx=1&sn=47c0245f9dbe70f3ad6b2540209af2c2&chksm=684d60665f3ae97095ba07d8c6804bac4f55dbc6e7100fbb233945f65364df88682d41332eb7&xtrack=1&scene=0&subscene=10000&clicktime=1616647421&enterid=1616647421&ascene=7&devicetype=android-29&version=28000165&nettype=WIFI&abtest_cookie=AAACAA%3D%3D&lang=zh_CN&exportkey=AdxLWFyJlgtM6uFZCpgWtBk%3D&pass_ticket=G8rEeGdox4FPpICRkrKy6ho2QZozCzXi%2Be7gV5bXnQaXoZK2pw4S8Wf2j%2Bt3D8mi&wx_header=1

    # Hikari 连接池配置,springboot2.0之后,采用的默认数据库连接池就是Hikari
    hikari:
      # 最小空闲连接数量
      minimum-idle: 5
      # 连接池最大连接数,默认是10
      maximum-pool-size: 15
      # 此属性控制从池返回的连接的默认自动提交行为,默认值:true
      auto-commit: true
      # 空闲连接存活最大时间,默认600000(10分钟)
      idle-timeout: 30000
      # 连接池名称
      pool-name: DatebookHikariCP
      # 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟
      max-lifetime: 1800000
      # 数据库连接超时时间,默认30秒,即30000
      connection-timeout: 30000
      connection-test-query: SELECT 1

能日赚30手赚试玩平台,亲测有效

运行项目时,看到输出日志中启动了连接池,说明连接池创建成功

2021-03-21 22:12:18,179 - DatebookHikariCP - Starting...
2021-03-21 22:12:18,399 - DatebookHikariCP - Start completed.
2021-03-21 22:12:18,427 - HHH000400: Using dialect: org.hibernate.dialect.MySQL5InnoDBDialect

HikariCP 没有自带的监控台,需要另外使用插件或工具,后续继续学习

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一个用于创建独立的、基于Spring的生产级应用程序的框架。它简化了Spring应用程序的开发过程,并提供了许多开箱即用的功能和约定,使开发人员能够更快速地构建应用程序。 Druid是一个开源的Java数据库连接池。它提供了高性能、可扩展和可管理的数据库连接池实现,同时还提供了监控和统计功能,可以帮助开发人员更好地管理和优化数据库连接。 在Spring Boot中使用Druid作为数据库连接池非常简单。首先,需要在pom.xml文件中添加Druid的依赖: ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.6</version> </dependency> ``` 然后,在application.properties或application.yml文件中配置Druid的属性: ```yaml spring.datasource.url=jdbc:mysql://localhost:3306/mydb spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver # Druid相关配置 spring.datasource.druid.initial-size=5 spring.datasource.druid.min-idle=5 spring.datasource.druid.max-active=20 spring.datasource.druid.max-wait=60000 ``` 这样就完成了Druid的配置。接下来,可以在代码中使用@Autowired注解将DataSource注入到需要使用的地方,例如DAO层的数据访问类。 需要注意的是,Druid还提供了丰富的监控和统计功能,可以在配置文件中进行相应的配置,以便在浏览器中查看相关信息。例如: ```yaml # Druid监控配置 spring.datasource.druid.stat-view-servlet.enabled=true spring.datasource.druid.stat-view-servlet.url-pattern=/druid/* spring.datasource.druid.stat-view-servlet.login-username=admin spring.datasource.druid.stat-view-servlet.login-password=admin ``` 这样就可以通过访问http://localhost:8080/druid/来查看Druid的监控页面。 总之,使用Spring Boot和Druid可以帮助开发人员更便捷地构建高性能、可管理的应用程序,并提供了丰富的监控和统计功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值