配置数据源

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数据源详解相关推荐

  1. springboot配置Druid数据源

    springboot配置druid数据源 Author:SimpleWu springboot整合篇 前言 对于数据访问层,无论是Sql还是NoSql,SpringBoot默认采用整合SpringDa ...

  2. SpringBoot整合JDBC、整合Druid数据源详解教程

    目录 一.整合JDBC 1. 环境准备 1. 创建数据库 2. 创建SpringBoot项目 3. IDEA连接数据库 2. 编写数据库配置信息 3. 编写测试类测试 4. CRUD操作数据库 1. ...

  3. springboot 配置DRUID数据源

    druid 是阿里开源的数据库连接池. 开发时整合   druid 数据源过程. 1.修改pom.xml <dependency><groupId>mysql</grou ...

  4. SpringBoot配置Druid数据源,持久层分别 mybatis,jdbc

    Druid与mybatis整合: application.yaml 配置参数文件 spring:datasource:#driver-class-name: com.mysql.jdbc.Driver ...

  5. SpringBoot配置Logback日志详解

    正文 Spring Boot默认集成了Logback,可以开箱即用,非常方便.因为spring-boot-starter-logging是Logback的日志实现,而Spring Boot启动项spr ...

  6. springboot配置aop切面详解

    1 引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>sp ...

  7. springboot2.5.5配置druid数据源1.2.8与jdbc

    [README] 本文记录了 springboot配置 druid数据源的步骤: [1]新建springboot项目并配置druid 步骤1,新建springbt项目 步骤2,选择spring web ...

  8. SpringBoot(配置druid数据源、配置MyBatis、事务控制、druid 监控)

    SpringBoot 得到最终效果是一个简化到极致的 WEB 开发,但是只要牵扯到 WEB 开发,就绝对不可能缺少 数据层操作,所有的开发都一定秉持着 MVC 设计模式的原则,MVC 里面业务层不可少 ...

  9. springboot中druid数据源配置无效的问题和jar包找不到问题

    springboot中druid数据源配置无效的问题 阿里云的仓库 链接: 阿里云仓库. 自己在springboot项目中,引入druid的依赖,希望引入druid数据源. 但是idea中,虽然在这个 ...

最新文章

  1. 【FFmpeg】ffmpeg工具源码分析(一):main函数
  2. window.event.srcElement
  3. 构建稳固的、可升缩的CSS框架的八大原则
  4. Django 入门项目案例开发(上)
  5. Linux jupyter安装位置,Linux下安装jupyter
  6. 存储块的删除与状态查询
  7. 哪吒汽车宣布获得上海银行总行20亿元综合授信额度
  8. 自动驾驶公司 | 纵目科技完成D轮1.9亿美元融资
  9. get和post方式请求数据,jsonp
  10. Codeforces Round #197 (Div. 2): D. Xenia and Bit Operations(线段树)
  11. Android 系统架构图
  12. Windows Tomcat 内存溢出解决方法
  13. IOS环境下APP应用完整性测试流程
  14. R语言---相关系数
  15. java获取https网页代码_java抓取Https协议url地址的源码的方法
  16. 摄像头黑屏等问题及解决方案汇总
  17. 寒假2019培训:白银莲花池-usaco2007(洛谷P2411)
  18. Ubuntu安装MATLAB并设置桌面快捷方式!!!
  19. python+opencv+图像特效(图像灰度处理、颜色翻转、图片融合,边缘检测,浮雕效果,颜色映射)
  20. android chrome72,Chrome 72正式版发布

热门文章

  1. 最长回文子串(C++,详细注释)
  2. 【Microsoft Azure 的1024种玩法】四十五.在Azure中快速创建Azure AD Domain Services
  3. 电能表校验装置TD1550直流电能表检定装置
  4. 开篇之作:window10 自带浏览器ie11无法启动 问题解决
  5. 音频文件 数据库存储_刚哥谈架构 (六) 谈谈数据库架构
  6. 一周心结总,拨开云雾见青天
  7. Python编程 递归函数
  8. Mycat安装、配置与实践(兼容mysql8)
  9. JSON文件读写操作详解
  10. oracle打开缓慢,Oracle SQL执行缓慢的原因以及解决方案