当前位置:   article > 正文

springboot多数据源项目集成druid并加密数据库密码_dynamic多数据源使用druid加密密码

dynamic多数据源使用druid加密密码

描述

新手一枚,学习使用spring boot搭建后端框架,学习使用druid作为数据库连接池,现将过程记录下来,以备不时之需 。

版本信息

jdk: 1.8
spring-boot-starter-parent:2.4.0
dynamic-datasource-spring-boot-starter:2.5.4
druid-spring-boot-starter:1.2.4

pom.xml配置druid-spring-boot-starter

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>druid-spring-boot-starter</artifactId>
	<version>1.2.4</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

使用druid加密密码

java -cp druid-1.2.4.jar com.alibaba.druid.filter.config.ConfigTools your_password
  • 1

在idea中找到引用的druid jar的位置方法:
外部库中找到引用的druid,右键选中该文件,然后选择资源管理器打开,接着在打开的资源管理器中打开命令行窗口,使用上面命令对密码进行加密,将密文1公钥2拷贝出来。
一个具有注脚的文本。

application.yml配置

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    druid: # druid全局配置
      # StatViewServlet配置
      stat-view-servlet:
        enabled: true
        # druid用户名
        login-username: xxxx
        # druid密码
        login-password: xxxxxxxx
        url-pattern: /druid/*
      # WebStatFilter配置
      web-stat-filter:
        enabled: true
        exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*,/components/*"
      # 连接池配置
      # 连接池初始化大小
      initial-size: 5
      # 最小
      min-idle: 5
      # 最大
      max-active: 20
      # 配置获取连接等待超时的时间
      max-wait: 6000
      # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
      time-between-eviction-runs-millis: 60000
      # 配置一个连接池中最小生存时间,单位是毫秒
      min-evictable-idle-time-millis: 300000
      # 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
      test-while-idle: true
      # 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
      test-on-borrow: false
      # 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
      test-on-return: false
      # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,‘wall’用于防火墙
      filters: stat, wall
      #当数据库抛出不可恢复的异常时,抛弃该连接
      exception-sorter: true
      # 打开PSCache,并且指定每个连接上PSCache的大小
      # PSCache对支持游标的数据库性能提升巨大,比如说oracle。mysql5.5+建议开启。
      pool-prepared-statements: false
      max-pool-prepared-statement-per-connection-size: 20
      #合并多个DruidDataSource的监控数据
      use-global-data-source-stat: true
    dynamic:
      p6spy: true
      primary: master
      datasource:
        master:
          driver-class-name: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:3306/siren_base?useSSL=false&serverTimezone=UTC
          username: root
          # 已加密的密码
          password: mb8IhmAWV1vPknA5vL/DP5FUu0Z7HvacKnZ98UBmUWrnz05CdQnK0BJlvKfVIywOIY8viG+D8yiMJKRFbMF1nA==
          druid:
            # mysql中为 select 'x'
            # oracle中为 select 1 from dual
            validation-query: SELECT 'x'
            filter:
              config:
                enabled: true # 开启Config过滤器,否则无法解密
            # 打开解密功能
            connection-properties: config.decrypt=true
            # 公钥配置在环境中
            public-key: ${public_key}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66

Application.java中修改注解

@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)
  • 1

在注解@SpringBootApplication中添加“exclude = DruidDataSourceAutoConfigure.class”
o/flowchart.js/

备注

1、master库密码加密,必须对master库配置config filter,否则系统启动失败。详情参考配置文件,有 注释说明


  1. password ↩︎

  2. publicKey ↩︎

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/844188
推荐阅读
相关标签
  

闽ICP备14008679号