添加依賴
項目 pom 文件中添加(根據個人愛好選擇相應依賴版本)
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.21</version>
</dependency>
生成加密數據
在依賴添加完成后,獲取本地倉庫中該 jar 包的地址:如 D:\Develop\Repository\localrepository\com\alibaba\druid\1.1.21,在該路徑下執行如下命令生成數據庫加密信息
java -cp druid-1.0.16.jar com.alibaba.druid.filter.config.ConfigTools you_password
如密碼為 root ,便會生成如下信息
D:\Develop\Repository\localrepository\com\alibaba\druid\1.1.21>java -cp druid-1.1.21.ja
r com.alibaba.druid.filter.config.ConfigTools root
privateKey:MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAhxXkd9KtM03lc7Q7XU2yMIWxGsVDWlvbukwHjwmBDBO4zY6m+R3vEzkJUw1C2q5WhZLBkuJgtKOc+EgLjimCQQIDAQABAkAcm4dJ1OT3I3z/NuEHjme5HOb3y2TLIv7ygh1rrlCU9N1AuIl48193MiNTA9PNx92vG9lczJuvSQMBa+QaKthBAiEAyTaEeyU03d3+IzAMZWx42RaiuCxprFTHdmhv5Oel+BkCIQCr3fvMg0VqEOs+SH/hqWMT6MIGnx32zB67cWlqSaTAaQIhAJfsdO0yM4+NzRQudD2kQD7Ra30Z85Pt00jhJBM2oMcJAiBvx3B9EuOSmG5nk7+YhRJrYHbQ16wlV5ylTJ3DAyKkAQIhAIqsg2Oao/9H2YqOD/QB3IUYDUsiBn/e0qr6pp866enj
publicKey:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIcV5HfSrTNN5XO0O11NsjCFsRrFQ1pb27pMB48JgQwTuM2Opvkd7xM5CVMNQtquVoWSwZLiYLSjnPhIC44pgkECAwEAAQ==
password:cWW8QQOAlxZFjHf92XJBmWgm7mTA2fS9Jd5HKjLiewHNPlWaLKbb6PHhC5h+6RO5czSBM8zqige2gK815i+3lg==
druid 配置
配置時發現一個問題,官方文檔中的屬性在 IDEA 會出現異常,具體配置如下:
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
# 加密后的密碼(原密碼 123456)
spring.datasource.password=WVMjPhfXQrIsWRo0/RCqAVvYtTU9WNVToKJohb8AlUmHwnV6vwFL+FM2CNFDMJwGHW1iCmyaUlF+sgvFdogqEA==
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# 公鑰
publickey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIiwHpFrDijV+GzwRTzWJk8D3j3jFfhsMFJ/7k1NTvBuLgL+TdIHgaMNOIEjHpXzuvX38J3FtOK8hLrySncVGOMCAwEAAQ==
# 配置 connection-properties,啟用加密,配置公鑰。
spring.datasource.druid.connection-properties=config.decrypt=true;config.decrypt.key=${publickey}
# 啟動ConfigFilter
spring.datasource.druid.filter.config.enabled=true
java.sql.SQLException: ORA-01005 異常
我在使用其配置時出現 Caused by: java.sql.SQLException: ORA-01005: null password given; logon denied 異常,若你也有同樣的問題,可以使用下面的配置(將 connection-properties 屬性替換成 connect-properties 即可)
application.yml 中 Druid 部分配置如下(注意層級關系,復制粘貼在 yml 中容易丟失出現 錯誤),並且我這使用的是 Oracle 數據庫,切記!
# 數據庫連接池配置
spring:
datasource:
driver-class-name: oracle.jdbc.driver.OracleDriver
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:oracle:thin:@127.0.0.1:1521:orcl
username: root
password: # 生成的 password
druid:
connect-properties:
config.decrypt: true
config.decrypt.key: # 生成的公鑰 publicKey
filter:
config:
enabled: true # 啟動ConfigFilter
initial-size: 5 # 連接池初始化大小
min-idle: 10 # 最小空閑連接數
max-active: 20 # 最大連接數