Druid多数据源整合
前言
为什么要使用Druid连接池?
通常我们是直接通过mybatis与数据库建立连接,而创建连接的过程是在发起请求和接受请求之间进行的,这样请求就会消耗更多的时间。并且在大型的web项目中,当有成百上千个请求发给数据库时,数据库就会为每个请求都分配一个数据库连接,这样就会导致请求的性能会很差。
而对于druid连接池而言,在tomcat启动时,就会自动创建多个连接对象,并且保存在连接池中。当接收到请求时,直接从连接池中取出,用完后再放回连接池中即可。同时Druid连接池还提供了监控功能可以实时对数据进行分析。
1. 引入依赖
<!--SpringBoot-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.5.3</version>
</dependency>
<!--druid连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.21</version>
</dependency>
<!--mybatis-plus 其中mybatis的功能也能用-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3</version>
</dependency>
<!--添加mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
2. application.yml配置
spring:
datasource:
#以下内容根据自己数据库而定
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/jt?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
type: com.alibaba.druid.pool.DruidDataSource
#druid数据源配置
druid:
initial-size: 5 #初始化大小
min-idle: 5 #最小连接数
max-active: 20 #最大连接数
max-wait: 10000 #最大等待时间(毫秒)
#监控sql统计时,拦截stat(监控统计的sql),wall(防御sql注入),slf4j(日志用的sql)
filters: stat,wall,slf4j
#druid用来测试连接是否可用的SQL语句,默认值每种数据库都不相同,oracle: select 1 from dual
validation-query: select 1
#申请连接时检测validation-query是否有效,降低性能,关闭
test-on-borrow: false
#归还连接时检测validation-query是否有效,降低性能,关闭
test-on-return: false
#申请连接时检测validation-query是否有效,提高安全性,不影响性能
test-while-idle: true
#配置隔多久进行一次检测(检测可以关闭的空闲连接),单位毫秒
time-between-eviction-runs-millis: 60000
#开启监控的配置
stat-view-servlet:
login-username: admin #druid登录时的账号密码
login-password: 123456
reset-enable: false #是否开启重置监控数据
url-pattern: /druid/* #登录druid网页后缀
enabled: true #开启监控
allow: #添加IP白名单,不写就是所有都允许
#deny: #添加IP黑名单
#监控配置中的 web监控
web-stat-filter:
enabled: true #表示开启
url-pattern: /* #url
#忽略过滤格式
exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
3. 检验配置是否生效
登录网页:http://127.0.0.1:8080/druid
注意:把 ip 和 端口 更改成自己的