Springboot配置Druid数据源详解
配置数据源
1、添加Druid依赖
<!-- druid数据源-->
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.3</version>
</dependency>
2、配置Druid
spring:datasource:username: rootpassword: root## 数据库驱动类driver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/security?serverTimezone=UTC## 切换自定义数据源type: com.alibaba.druid.pool.DruidDataSource## 数据源其他配置#初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时initialSize: 5# 已经不再使用,配置了也没效果minIdle: 5# 最大连接池数量maxActive: 20# 获取连接时最大等待时间,单位毫秒。配置了maxWait之后,缺省启用公平锁,并发效率会有所下降,如果需要可以通过配置useUnfairLock属性为true使用非公平锁。maxWait: 60000# 有两个含义: # 1) Destroy线程会检测连接的间隔时间# 2) testWhileIdle的判断依据,详细看testWhileIdle属性的说明timeBetweenEvictionRunsMillis: 60000# 连接保持空闲而不被驱逐的最长时间minEvictableIdleTimeMillis: 300000# 用来检测连接是否有效的sql,要求是一个查询语句。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会其作用。validationQuery: SELECT 1 FROM DUAL# 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。testWhileIdle: true# 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。testOnBorrow: false# 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能testOnReturn: false# 是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭。poolPreparedStatements: true
## 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙 # 属性类型是字符串,通过别名的方式配置扩展插件,常用的插件有: # 监控统计用的filter:stat,日志用的filter:log4j,防御sql注入的filter:wallfilters: stat,wall,log4j# maxPoolPreparedStatementPerConnectionSize: 20# useGlobalDataSourceStat: true # connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
3、测试Druid数据源是否切换成功
@SpringBootTest
class SpringBootDataJdbcApplicationTests {@AutowiredDataSource dataSource;@Testvoid connection() throws SQLException {// 打印数据源:com.alibaba.druid.pool.DruidDataSourceSystem.out.println(dataSource.getClass());// 获取连接对象Connection connection = dataSource.getConnection();// 打印连接对象:com.mysql.cj.jdbc.ConnectionImpl@715b886fSystem.out.println(connection);// 关闭连接connection.close();}
}
4、Druid数据源切换成功
配置Druid数据源监控系统
@Configuration
public class DruidConfig {/*** 将自定义的 Druid数据源添加到容器中,不再让 Spring Boot 自动创建* 绑定全局配置文件中的 druid 数据源属性到 com.alibaba.druid.pool.DruidDataSource从而让它们生效* @ConfigurationProperties(prefix = "spring.datasource"):作用就是将 全局配置文件中* 前缀为 spring.datasource的属性值注入到 com.alibaba.druid.pool.DruidDataSource 的同名参数中* * @return DruidDataSource*/@Bean@ConfigurationProperties(prefix = "spring.datasource")public DataSource druid(){return new DruidDataSource();}// 配置druid监控// 1、配置一个管理后台的 StatViewServlet// 以下属性可以在com.alibaba.druid.support.http.StatViewServlet或// com.alibaba.druid.support.http.ResourceServlet中找到@Beanpublic ServletRegistrationBean statViewServlet(){ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");Map<String,String> initParams = new HashMap<>();// 后台管理登录账户initParams.put("loginUsername","admin");// 后台管理登录密码initParams.put("loginPassword","123456");// 允许哪个IP访问,为""或null表示允许所有访问initParams.put("allow","");// 拒绝哪个IP地址访问initParams.put("deny","192.168.43.93");// 设置初始化参数bean.setInitParameters(initParams);return bean;}// 2、配置一个web监控的 WebStatFilter@Beanpublic FilterRegistrationBean webStatFilter(){FilterRegistrationBean<WebStatFilter> bean = new FilterRegistrationBean<>(new WebStatFilter());Map<String,String> initParams = new HashMap<>();//exclusions:设置哪些请求进行过滤排除掉,从而不进行统计initParams.put("exclusions","*.js,*.css,*.img,/druid/*");// 设置初始化参数bean.setInitParameters(initParams);// "/*" 表示过滤所有请求bean.setUrlPatterns(Arrays.asList("/*"));return bean;}
}
Springboot配置Druid数据源详解相关推荐
- springboot配置Druid数据源
springboot配置druid数据源 Author:SimpleWu springboot整合篇 前言 对于数据访问层,无论是Sql还是NoSql,SpringBoot默认采用整合SpringDa ...
- SpringBoot整合JDBC、整合Druid数据源详解教程
目录 一.整合JDBC 1. 环境准备 1. 创建数据库 2. 创建SpringBoot项目 3. IDEA连接数据库 2. 编写数据库配置信息 3. 编写测试类测试 4. CRUD操作数据库 1. ...
- springboot 配置DRUID数据源
druid 是阿里开源的数据库连接池. 开发时整合 druid 数据源过程. 1.修改pom.xml <dependency><groupId>mysql</grou ...
- SpringBoot配置Druid数据源,持久层分别 mybatis,jdbc
Druid与mybatis整合: application.yaml 配置参数文件 spring:datasource:#driver-class-name: com.mysql.jdbc.Driver ...
- SpringBoot配置Logback日志详解
正文 Spring Boot默认集成了Logback,可以开箱即用,非常方便.因为spring-boot-starter-logging是Logback的日志实现,而Spring Boot启动项spr ...
- springboot配置aop切面详解
1 引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>sp ...
- springboot2.5.5配置druid数据源1.2.8与jdbc
[README] 本文记录了 springboot配置 druid数据源的步骤: [1]新建springboot项目并配置druid 步骤1,新建springbt项目 步骤2,选择spring web ...
- SpringBoot(配置druid数据源、配置MyBatis、事务控制、druid 监控)
SpringBoot 得到最终效果是一个简化到极致的 WEB 开发,但是只要牵扯到 WEB 开发,就绝对不可能缺少 数据层操作,所有的开发都一定秉持着 MVC 设计模式的原则,MVC 里面业务层不可少 ...
- springboot中druid数据源配置无效的问题和jar包找不到问题
springboot中druid数据源配置无效的问题 阿里云的仓库 链接: 阿里云仓库. 自己在springboot项目中,引入druid的依赖,希望引入druid数据源. 但是idea中,虽然在这个 ...
最新文章
- 【FFmpeg】ffmpeg工具源码分析(一):main函数
- window.event.srcElement
- 构建稳固的、可升缩的CSS框架的八大原则
- Django 入门项目案例开发(上)
- Linux jupyter安装位置,Linux下安装jupyter
- 存储块的删除与状态查询
- 哪吒汽车宣布获得上海银行总行20亿元综合授信额度
- 自动驾驶公司 | 纵目科技完成D轮1.9亿美元融资
- get和post方式请求数据,jsonp
- Codeforces Round #197 (Div. 2): D. Xenia and Bit Operations(线段树)
- Android 系统架构图
- Windows Tomcat 内存溢出解决方法
- IOS环境下APP应用完整性测试流程
- R语言---相关系数
- java获取https网页代码_java抓取Https协议url地址的源码的方法
- 摄像头黑屏等问题及解决方案汇总
- 寒假2019培训:白银莲花池-usaco2007(洛谷P2411)
- Ubuntu安装MATLAB并设置桌面快捷方式!!!
- python+opencv+图像特效(图像灰度处理、颜色翻转、图片融合,边缘检测,浮雕效果,颜色映射)
- android chrome72,Chrome 72正式版发布