Spring Boot之使用阿里巴巴Druid数据库连接池(数据源) |
您所在的位置:网站首页 › springboot数据库连接满了 › Spring Boot之使用阿里巴巴Druid数据库连接池(数据源) |
作者:谭东 Druid是一个关系型数据库连接池,它是阿里巴巴的一个开源项目。Druid支持所有JDBC兼容数据库,包括了Oracle、MySQL、PostgreSQL、SQL Server、H2等。Druid在监控、可扩展性、稳定性和性能方面具有明显的优势。通过Druid提供的监控功能,可以实时观察数据库连接池和SQL查询的工作情况。使用Druid连接池在一定程度上可以提高数据访问效率。 本文的内容基于前几节文章的项目来加入Druid库,实现数据库操作监控。 首先在pom.xml里加入依赖库。 com.alibaba druid-spring-boot-starter 1.1.10然后在application.yml里加入数据库及连接池配置信息: server: port: 8082 # HTTP (Tomcat) port spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/student?serverTimezone=GMT=&useUnicode=true&characterEncoding=utf-8&useSSL=true username: root password: Mysql123456 type: com.alibaba.druid.pool.DruidDataSource #最大活跃数 maxActive: 20 #初始化数量 initialSize: 1 #最大连接等待超时时间 maxWait: 60000 #打开PSCache,并且指定每个连接PSCache的大小 poolPreparedStatements: true maxPoolPreparedStatementPerConnectionSize: 20 #通过connectionProperties属性来打开mergeSql功能;慢SQL记录 #connectionProperties: druid.stargeSql=true;druid.stat.slowSqlMillis=5000 minIdle: 1 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: select 1 from dual testWhileIdle: true testOnBorrow: false testOnReturn: false #配置监控统计拦截的filters,去掉后监控界面sql将无法统计,'wall'用于防火墙 filters: stat, wall, log4j jpa: hibernate: ddl-auto: update # 第一次建表create 后面用update show-sql: true接下来编译运行我们的项目,操作几下访问数据库的路径。 如果出现图上的类似信息,说明我们配置的Druid数据源成功。 接下来我们实现开启监控功能。实现数据库的各个方面的监控及数据统计,方便我们进行数据库的优化。 我们来实现Druid的访问Servlet和Filter。 在项目根目录新建DruidConfiguration类。 package com.tandong.testjavaweb; import com.alibaba.druid.support.http.StatViewServlet; import com.alibaba.druid.support.http.WebStatFilter; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class DruidConfiguration { @Bean public ServletRegistrationBean statViewServlet(){ //创建servlet注册实体 ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*"); //设置ip白名单 servletRegistrationBean.addInitParameter("allow","127.0.0.1"); //设置ip黑名单,如果allow与deny共同存在时,deny优先于allow servletRegistrationBean.addInitParameter("deny","192.168.0.19"); //设置控制台管理用户 servletRegistrationBean.addInitParameter("loginUsername","druid"); servletRegistrationBean.addInitParameter("loginPassword","123456"); //是否可以重置数据 servletRegistrationBean.addInitParameter("resetEnable","false"); return servletRegistrationBean; } @Bean public FilterRegistrationBean statFilter(){ //创建过滤器 FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter()); //设置过滤器过滤路径 filterRegistrationBean.addUrlPatterns("/*"); //忽略过滤的形式 filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"); return filterRegistrationBean; } }结构如图: 这样就配置好了Druid的监控,我们重新编译运行项目。 访问:http://127.0.0.1:8082/druid/login.html ,输入用户名和密码登录。 然后,我们操作几下我们的访问数据库接口操作。 我们再点击SQL监控和URI监控。 可以看到我们的一些操作都被记录下来了。 完整项目Github地址:https://github.com/jaychou2012/Spring-Boot-Web 参考文献: 【1】druid/druid-spring-boot-starter.https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |