如何在SpringBoot中配置Druid配置
导读:本文共2539字符,通常情况下阅读需要8分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: Druid是阿里开源的一个JDBC应用组件, 其包括三部分:DruidDriver: 代理Driver,能够提供基于Filter-Chain模式的插件体系。DruidDataSource: 高效可管理的数据库连接池。SQLParser: 实用的SQL语法分析通过Druid连接池中间件, 我们可以实现:可以监控数据库访问性能,Druid内置提供了一个功能强大的St... ...
目录
(为您整理了一些要点),点击可以直达。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是什么
springboot一种全新的编程规范,其设计目的是用来简化新Spring应用的初始搭建以及开发过程,SpringBoot也是一个服务于框架的框架,服务范围是简化配置文件。
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
如何在SpringBoot中配置Druid配置的详细内容,希望对您有所帮助,信息来源于网络。