一聚教程网:一个值得你收藏的教程网站

热门教程

Springboot2集成druid加密数据库密码配置方法代码

时间:2022-06-29 02:17:04 编辑:袖梨 来源:一聚教程网

本篇文章小编给大家分享一下Springboot2集成druid加密数据库密码配置方法代码,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。

一:环境

springboot 2.x

druid 1.1.21

二:druid加密数据库密码

本地下载druid-1.1.21.jar包,运行cmd,输入命令

java -cp jar包路径 com.alibaba.druid.filter.config.ConfigTools 数据库密码
java -cp druid-1.1.21.jar com.alibaba.druid.filter.config.ConfigTools 数据库密码

运行成功输出

privateKey:MIIBVAIBAD...

publicKey:MFwwDQYJKo...

password:PNd/zcG+JEn...

将得到的publicKey、password分别填充进yml配置文件即可

三:单数据源

添加依赖


    com.alibaba
    druid-spring-boot-starter
    1.1.21

yml配置

spring:
  datasource:
    name: 名称
    url: 地址
    username: 用户名
    password: 加密后的密码
    driver-class-name: com.mysql.cj.jdbc.Driver
    # druid
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      #特别提示:配置数据库加密 config这个不能忘掉
      filters: stat,wall,config
      use-global-data-source-stat: true
      # 开启解密config.decrypt=true; 公钥:config.decrypt.key
      connect-properties:
        druid.stat.mergeSql: true
        druid.stat.slowSqlMillis: 5000
        druid.stat.logSlowSql: true
        config.decrypt: true
        config.decrypt.key: 公钥
      # 连接池的配置信息
      # 初始化大小,最小空闲连接数,最大活跃数
      initial-size: 5
      min-idle: 5
      maxActive: 20
      # 配置获取连接等待超时的时间
      maxWait: 60000
      # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
      timeBetweenEvictionRunsMillis: 60000
      # 配置一个连接在池中最小生存的时间,单位是毫秒
      minEvictableIdleTimeMillis: 300000
      validationQuery: SELECT 1 FROM DUAL
      testWhileIdle: true
      testOnBorrow: false
      testOnReturn: false
      # 打开PSCache,并且指定每个连接上PSCache的大小
      poolPreparedStatements: true
      maxPoolPreparedStatementPerConnectionSize: 20

四:多数据源

添加依赖


    com.alibaba
    druid-spring-boot-starter
    1.1.21


   com.baomidou
   dynamic-datasource-spring-boot-starter
   2.5.3

启动类配置

@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)

eg:

yml配置

spring:
  datasource:
    dynamic:
      # 默认数据源
      primary: CLOUD
      datasource:
        CLOUD:
          url: 数据库地址
          username: 用户名
          password: 加密后的密码
          driver-class-name: com.mysql.cj.jdbc.Driver
          druid:
            public-key: 加密后的公钥
        WAREHOUSE:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: 数据库地址
          username: 用户名
          password: 加密后的密码
          druid:
            public-key: 加密后的公钥

热门栏目