转载请标注原文地址:https://blog.csdn.net/lilyssh/article/details/82753582
Spring Boot 2.0.4 集成 druid 1.1.10 。项目源码地址
1. 初始化工程
工程 user-provider的结构为:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 1$ tree -I target
2.
3├── pom.xml
4└── src
5 └── main
6 ├── java
7 │ └── cn
8 │ └── lilyssh
9 │ └── user
10 │ └── provider
11 │ └── UserProviderApplication.java
12 └── resources
13 └── application.yml
14
15
2. 添加依赖
打开 pom.xml 引入druid-spring-boot-starter、mysql-connector-java、spring-boot-starter-jdbc、lombok 依赖:(引入lombok是为了方便实体类中get、set方法的自动生成,并不是连接池需要)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 1<dependency>
2 <groupId>com.alibaba</groupId>
3 <artifactId>druid-spring-boot-starter</artifactId>
4 <version>1.1.10</version>
5</dependency>
6<dependency>
7 <groupId>mysql</groupId>
8 <artifactId>mysql-connector-java</artifactId>
9 <version>8.0.12</version>
10</dependency>
11<dependency>
12 <groupId>org.springframework.boot</groupId>
13 <artifactId>spring-boot-starter-jdbc</artifactId>
14 <version>2.0.4.RELEASE</version>
15</dependency>
16<dependency>
17 <groupId>org.projectlombok</groupId>
18 <artifactId>lombok</artifactId>
19 <version>1.16.20</version>
20 <scope>provided</scope>
21</dependency>
22
23
3. 配置
(1) 在 application.yml配置文件中添加数据库的相关配置:
1
2
3
4
5
6
7
8
9
10 1spring:
2 datasource:
3 druid:
4 url: jdbc:mysql://db.qianxunclub.com:3306/demo
5 username: zhangbin
6 password: ghdxZSuz+strVRCKInFX8Vp1vjMksZgb5tELqcc7Gkv7c2pQEFSFGDCy8qfbCZdRdG4VVVwS7rIKCFGWZh0OgQ==
7 filters: config
8 connection-properties: "config.decrypt=true;config.decrypt.key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALCr8UOmkUhwi+xhbpYaSPOMPxw/Rh3KCzIS9VPTo6fleRLXAP9zCC+9s9f88l/GuN4PI4yDPqg4qT6iQpsREA0CAwEAAQ=="
9
10
(2) 上一步的数据库密码 加密步骤:
(2.1) 执行命令加密数据库密码
1
2
3
4
5 1$ cd ~/.m2/repository/com/alibaba/druid/1.1.10
2
3$ java -cp druid-1.1.10.jar com.alibaba.druid.filter.config.ConfigTools you_password
4
5
会看到
1
2
3
4
5 1privateKey: xxx
2publicKey: ***
3password: &&&
4
5
输入你的数据库密码,输出的是加密后的结果。
(2.2) 配置数据源,提示Druid数据源需要对数据库密码进行解密。
1
2
3
4
5
6
7
8
9 1datasource:
2 druid:
3 url: jdbc:mysql://db.qianxunclub.com:3306/demo
4 username: zhangbin
5 password: ${password}
6 filters: config
7 connection-properties: config.decrypt=true;config.decrypt.key=${publickey}
8
9
4. 测试
mvn clean package,报错:
1
2
3
4
5
6
7
8
9
10 1[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project user-api: Fatal error compiling: java.lang.ExceptionInInitializerError: com.sun.tools.javac.code.TypeTags -> [Help 1]
2[ERROR]
3[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
4[ERROR] Re-run Maven using the -X switch to enable full debug logging.
5[ERROR]
6[ERROR] For more information about the errors and possible solutions, please read the following articles:
7[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
8
9
10
解决办法:
这是java10下编译lombok 1.16.20版本的问题,通过升级到1.16.22即可搞定。
1
2
3
4
5
6
7
8 1<dependency>
2 <groupId>org.projectlombok</groupId>
3 <artifactId>lombok</artifactId>
4 <version>1.16.22</version>
5 <scope>provided</scope>
6</dependency>
7
8
用jmeter进行高并发压测,会出现错误:线程池耗尽。具体解决办法参考文章:threadpool is exhausted
大功告成!