一:环境
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配置文件即可
三:单数据源
添加依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.21</version> </dependency>
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
四:多数据源
添加依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.21</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>dynamic-datasource-spring-boot-starter</artifactId> <version>2.5.3</version> </dependency>
启动类配置
@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: 加密后的公钥