如何在SpringBoot中配置Druid配置(druid,springboot,编程语言)

时间:2024-04-30 00:16:34 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

Druid是阿里开源的一个JDBC应用组件, 其包括三部分:

  • DruidDriver: 代理Driver,能够提供基于Filter-Chain模式的插件体系。

  • DruidDataSource: 高效可管理的数据库连接池。

  • SQLParser: 实用的SQL语法分析

通过Druid连接池中间件, 我们可以实现:

  • 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上分析数据库访问性能有帮助。

  • 替换传统的DBCP和C3P0连接池中间件。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池。

  • 数据库密码加密。直接把数据库密码写在配置文件中,容易导致安全问题。DruidDruiver和DruidDataSource都支持PasswordCallback。

  • SQL执行日志,Druid提供了不同的LogFilter,能够支持Common-Logging、Log4j和JdkLog,你可以按需要选择相应的LogFilter,监控你应用的数据库访问情况。

  • 扩展JDBC,如果你要对JDBC层有编程的需求,可以通过Druid提供的Filter-Chain机制,很方便编写JDBC层的扩展插件。

配置代码如下

spring:datasource:type:com.alibaba.druid.pool.DruidDataSourcedriverClassName:com.mysql.cj.jdbc.Driverurl:jdbc:mysql://${url}:${port}/${数据库名}?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false&allowMultiQueries=true&useAffectedRows=trueusername:${username}password:${password}druid:initial-size:10#初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时min-idle:10#最小连接池数量maxActive:200#最大连接池数量maxWait:60000#获取连接时最大等待时间,单位毫秒。配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置timeBetweenEvictionRunsMillis:60000#关闭空闲连接的检测时间间隔.Destroy线程会检测连接的间隔时间,如果连接空闲时间大于等于minEvictableIdleTimeMillis则关闭物理连接。minEvictableIdleTimeMillis:300000#连接的最小生存时间.连接保持空闲而不被驱逐的最小时间validationQuery:SELECT1FROMDUAL#验证数据库服务可用性的sql.用来检测连接是否有效的sql因数据库方言而差,例如oracle应该写成SELECT1FROMDUALtestWhileIdle:true#申请连接时检测空闲时间,根据空闲时间再检测连接是否有效.建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRuntestOnBorrow:false#申请连接时直接检测连接是否有效.申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。testOnReturn:false#归还连接时检测连接是否有效.归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。poolPreparedStatements:true#开启PSCachemaxPoolPreparedStatementPerConnectionSize:20#设置PSCache值connectionErrorRetryAttempts:3#连接出错后再尝试连接三次breakAfterAcquireFailure:true#数据库服务宕机自动重连机制timeBetweenConnectErrorMillis:300000#连接出错后重试时间间隔asyncInit:true#异步初始化策略remove-abandoned:true#是否自动回收超时连接remove-abandoned-timeout:1800#超时时间(以秒数为单位)transaction-query-timeout:6000#事务超时时间filters:stat,wall,log4j2connectionProperties:druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000web-stat-filter:enabled:trueurl-pattern:"/*"exclusions:"*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"stat-view-servlet:url-pattern:"/druid/*"allow:deny:reset-enable:falselogin-username:adminlogin-password:admin

druid监控数据的外部化调用

@RestControllerpublicclassDruidStatController{@GetMapping("/stat")publicObjectdruidStat(){//DruidStatManagerFacade#getDataSourceStatDataList该方法可以获取所有数据源的监控数据returnDruidStatManagerFacade.getInstance().getDataSourceStatDataList();}}

图例

如何在SpringBoot中配置Druid配置

springboot是什么

springboot一种全新的编程规范,其设计目的是用来简化新Spring应用的初始搭建以及开发过程,SpringBoot也是一个服务于框架的框架,服务范围是简化配置文件。

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:如何在SpringBoot中配置Druid配置的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:全面了解Java反射机制下一篇:

12 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18