springboot配置druid数据库密码加密

一、说明

环境:idea 2019.2 + druid-1.1.6
springboot集成Druid 请参考博文:https://blog.csdn.net/qq_25646191/article/details/107937684

二、执行命令加密数据库密码

java -cp druid的jar包路径 com.alibaba.druid.filter.config.ConfigTools you_password

2-1、项目中定位到druid的jar包

image.png

2-2、右键 -> Open Library Settings -> ctrl +c 复制jar路径

image.png
image.png

得到druid的jar包路径:
D:\apache-maven-3.3.9\mydata\Repository\com\alibaba\druid\1.1.6\druid-1.1.6.jar

2-3、打开cmd命令行窗口

假如你的密码是 1234
winds键 + r -> 输入cmd -> 按回车键

命令行执行(注意每次执行结果不一样,执行完请将结果复制保存下

java -cp D:\apache-maven-3.3.9\mydata\Repository\com\alibaba\druid\1.1.6\druid-1.1.6.jar com.alibaba.druid.filter.config.ConfigTools 1234

输出:

privateKey:MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEA04tkqzedSRvSl4EDTVg183gKxSDlc1imRbLjBvAl+7w58rvmNP9lOT30uSPBVbN2i7u81PsW44aW/PE19mCU2wIDAQABAkBTvY9ZM8fAhBIGRVzgRjX9LhzdUhtiYMpZNuol+fSfRHfCKUWC3QkcizPP8KwazePslqVvpMJAX/AEg/sCN3Z5AiEA+5hmCo0bsly1Y7gwD45PVEjutoSXRnA9YGbMNfDU5IcCIQDXP36lE2TCfH8/alrXjE2KDjMvhN/urI6H0tJSlV+2DQIgD5/pRmJ5A9yqDyVTJsQpvQxCdudJFcDGrwPzTq5EKmUCIQC2YnPCFiO7c9gyeMDOgXC2OQAAFLvWNdpzlhxmo3E9BQIhAKu5ooDRq2b64sIc9UfS1h0rm4qfsGDBNjKOosM6Y7pc
publicKey:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANOLZKs3nUkb0peBA01YNfN4CsUg5XNYpkWy4wbwJfu8OfK75jT/ZTk99LkjwVWzdou7vNT7FuOGlvzxNfZglNsCAwEAAQ==
password:tkn8Joi6uWC1ZRX/l3HQGUwfIN0RbNPOZNDaeaHLNrzxRDaBASxZ63CNSXk/aTRSGLvr0ZbpsVGzxozMFV9Baw==

命令行截图:
image.png

三、修改配置文件application.properties

3-1、password 修改为 上面命令行执行得到的password

spring.datasource.password=tkn8Joi6uWC1ZRX/l3HQGUwfIN0RbNPOZNDaeaHLNrzxRDaBASxZ63CNSXk/aTRSGLvr0ZbpsVGzxozMFV9Baw==

3-2、filter属性追加config

spring.datasource.filters=stat,wall,slf4j,config

3-3、connectionProperties属性

connectionProperties属性追加 ;config.decrypt=true;config.decrypt.key=${publickey}
${publickey}为上面命令行执行得到的publicKey

spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000;config.decrypt=true;config.decrypt.key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANOLZKs3nUkb0peBA01YNfN4CsUg5XNYpkWy4wbwJfu8OfK75jT/ZTk99LkjwVWzdou7vNT7FuOGlvzxNfZglNsCAwEAAQ==

3-4、application.properties相关druid完整配置

spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=tkn8Joi6uWC1ZRX/l3HQGUwfIN0RbNPOZNDaeaHLNrzxRDaBASxZ63CNSXk/aTRSGLvr0ZbpsVGzxozMFV9Baw==
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

#连接池的配置信息
## 初始化大小,最小,最大
spring.datasource.initialSize=5
spring.datasource.minIdle=5
spring.datasource.maxActive=20
## 配置获取连接等待超时的时间
spring.datasource.maxWait=60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.timeBetweenEvictionRunsMillis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
# 打开PSCache,并且指定每个连接上PSCache的大小(防火墙这一块一定不能开,sqlite不支持,会导致奇怪的异常)
spring.datasource.poolPreparedStatements=false
spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
spring.datasource.filters=stat,wall,slf4j,config
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000;config.decrypt=true;config.decrypt.key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANOLZKs3nUkb0peBA01YNfN4CsUg5XNYpkWy4wbwJfu8OfK75jT/ZTk99LkjwVWzdou7vNT7FuOGlvzxNfZglNsCAwEAAQ==
# 合并多个DruidDataSource的监控数据
spring.datasource.useGlobalDataSourceStat=true

四、启动springboot项目验证

在这里插入图片描述

五、官网参考

https://github.com/alibaba/druid/wiki/%E4%BD%BF%E7%94%A8ConfigFilter

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
对于配置Druid连接池的Spring Boot项目,你可以按照以下步骤进行操作: 1. 在pom.xml文件中添加Druid的依赖: ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.2.6</version> </dependency> ``` 2. 在application.properties(或application.yml)文件中添加Druid配置项,例如: ```properties # 数据源配置 spring.datasource.url=jdbc:mysql://localhost:3306/mydb spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # Druid配置 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.druid.initial-size=5 spring.datasource.druid.min-idle=5 spring.datasource.druid.max-active=20 spring.datasource.druid.max-wait=60000 spring.datasource.druid.time-between-eviction-runs-millis=60000 spring.datasource.druid.min-evictable-idle-time-millis=300000 spring.datasource.druid.validation-query=SELECT 1 FROM DUAL spring.datasource.druid.test-while-idle=true spring.datasource.druid.test-on-borrow=false spring.datasource.druid.test-on-return=false spring.datasource.druid.filters=stat,wall,log4j # Druid监控配置 spring.datasource.druid.stat-view-servlet.enabled=true spring.datasource.druid.stat-view-servlet.url-pattern=/druid/* spring.datasource.druid.stat-view-servlet.reset-enable=false spring.datasource.druid.stat-view-servlet.login-username=admin spring.datasource.druid.stat-view-servlet.login-password=admin ``` 3. 创建一个配置类(可选),用于自定义Druid数据源的一些属性,例如: ```java @Configuration public class DruidConfig { @ConfigurationProperties(prefix = "spring.datasource.druid") @Bean public DataSource druidDataSource() { return new DruidDataSource(); } } ``` 以上步骤完成后,你就成功地配置Druid连接池。你可以使用@Autowired注解将DruidDataSource注入到你的代码中,然后就可以使用它来获取数据库连接了。希望这对你有所帮助!如果有任何疑问,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值