springboot 整合 druid 数据库连接池

springboot 整合 druid 数据库连接池

在 pom 文件中添加依赖
<!-- https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter -->
<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>druid-spring-boot-starter</artifactId>
	<version>1.1.23</version>
</dependency>
在application.yaml文件中配置

以下配置文件中,除了基本的配置以外还配置了:

防止sql注入、sql监控、启用内置监控页面、开启慢SQL统计

内置监控页面开启之后的地址为:项目地址后面加 druid

spring:
  datasource:
    name: druidDataSource
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      url: jdbc:mysql://127.0.0.1:3306/edu
      username: root
      password: 123456
      driver-class-name: com.mysql.jdbc.Driver
      initial-size: 1									# 初始化链接数
      min-idle: 1										# 最小保留连接数
      max-active: 30									# 最大连接数
      max-wait: 60000									# 超时时间
      time-between-eviction-runs-millis: 60000			# 空闲连接检查、废弃连接清理、空闲连接池大小调整之间的操作时间间隔
      min-evictable-idle-time-millis: 300000			# 指定一个空闲连接最少空闲多久后可被清除
      validation-query: SELECT 1						# 链接断开检查语句
      test-while-idle: true								# 超时检测
      test-on-borrow: false								# 即在获取Connection对象时检测其可用性
      test-on-return=: false							# 设置当连接被归还时,是否要提交所有还未完成的事务
      pool-prepared-statements: true					# 打开PSCache,并且指定每个连接上PSCache的大小
      max-pool-prepared-statement-per-connection-size: 20
      # 过滤器设置(第一个stat很重要,没有的话会监控不到SQL)
      filters: stat,wall,log4j2
      # 'wall'用于防火墙 防止sql注入
      # 启用StatFilter
      web-stat-filter:
        enabled: true
        url-pattern: /*                 # 添加过滤规则
        exclusions: /druid/* # 排除一些不必要的url
        session-stat-enable: true       # 开启session统计功能
        session-stat-max-count: 1000    # 缺省sessionStatMaxCount是1000个
      #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配置 #######
      #启用内置的监控页面
      stat-view-servlet:
        enabled: true
        url-pattern: /druid/*           #内置监控页面的地址
        reset-enable: false             #关闭 Reset All 功能
        login-username: admin           #设置登录用户名
        login-password: 123             #设置登录密码
        allow: 127.0.0.1                #白名单(如果allow没有配置或者为空,则允许所有访问)
        deny:                           #黑名单(deny优先于allow,如果在deny列表中,就算在allow列表中,也会被拒绝)
      # 开启慢SQL统计(这里超过500毫秒则判定为慢SQL)
      filter:
        stat:
          enabled: true
          log-slow-sql: true
          slow-sql-millis: 500

以上的参数都是作者根据自身编写的,最终的优化还是要根据自己的实际情况配置。

druid 中使用ConfigFilter对配置文件进行操作

ConfigFilter的作用:

  • 从配置文件中读取配置
  • 从远程http文件中读取配置
  • 为数据库密码提供加密功能
数据库密码加密

在命令行中执行如下命令:

java -cp druid-1.0.16.jar com.alibaba.druid.filter.config.ConfigTools you_password

输出

privateKey:MIIBVgIBADANBgkqhkiG9w0BAQEFAASCAUAwggE8AgEAAkEA6+4avFnQKP+O7bu5YnxWoOZjv3no4aFV558HTPDoXs6EGD0HP7RzzhGPOKmpLQ1BbA5viSht+aDdaxXp6SvtMQIDAQABAkAeQt4fBo4SlCTrDUcMANLDtIlax/I87oqsONOg5M2JS0jNSbZuAXDv7/YEGEtMKuIESBZh7pvVG8FV531/fyOZAiEA+POkE+QwVbUfGyeugR6IGvnt4yeOwkC3bUoATScsN98CIQDynBXC8YngDNwZ62QPX+ONpqCel6g8NO9VKC+ETaS87wIhAKRouxZL38PqfqV/WlZ5ZGd0YS9gA360IK8zbOmHEkO/AiEAsES3iuvzQNYXFL3x9Tm2GzT1fkSx9wx+12BbJcVD7AECIQCD3Tv9S+AgRhQoNcuaSDNluVrL/B/wOmJRLqaOVJLQGg==
publicKey:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAOvuGrxZ0Cj/ju27uWJ8VqDmY7956OGhVeefB0zw6F7OhBg9Bz+0c84RjzipqS0NQWwOb4kobfmg3WsV6ekr7TECAwEAAQ==
password:PNak4Yui0+2Ft6JSoKBsgNPl+A033rdLhFw+L0np1o+HDRrCo9VkCuiiXviEMYwUgpHZUFxb2FpE0YmSguuRww==

在 application.properties 中配置以下选项

spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
# 生成的加密后的密码(原密码 123456)
spring.datasource.password=WVMjPhfXQrIsWRo0/RCqAVvYtTU9WNVToKJohb8AlUmHwnV6vwFL+FM2CNFDMJwGHW1iCmyaUlF+sgvFdogqEA==
# 生成的公钥
public-key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIiwHpFrDijV+GzwRTzWJk8D3j3jFfhsMFJ/7k1NTvBuLgL+TdIHgaMNOIEjHpXzuvX38J3FtOK8hLrySncVGOMCAwEAAQ==
# 配置 connection-properties,启用加密,配置公钥。
spring.datasource.druid.connection-properties=config.decrypt=true;config.decrypt.key=${public-key}
# 启用ConfigFilter
spring.datasource.druid.filter.config.enabled=true
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值