Spring-Boot整合mybatis(二),使用阿里的druid包,进行监控SQL执行速度
2017-03-18 00:00
1161 查看
开始写了一篇使用默认的数据库连接池包,有兴趣的同学可以看看上一篇文章,这次我们介绍一下使用阿里的druid包,替换默认的数据库连接池,顺便进行监控SQL执行时间等....
先介绍一下开发环境:
jdk版本是1.8
springboot的版本是1.4.1
开发工具为 intellij idea
首先我们先引入druid包的依赖,在项目的pom文件中添加以下内容:
------------------------------------分割线-------------------------------------
引入依赖后,我们根据druid包的文档进行配置.首先,我们在properties配置文件增加如下数据库连接一些简单的参数
------------------------------------分割线-------------------------------------
上面的配置,只是让我们替换了数据源的配置而已,接下来,我们还需要配置一下监控
配置一个叫 DruidStatViewServlet 的servlet来进入监控页面
配置一个叫 WebStatFilter 的过滤器来过滤一些请求
我们配置一个配置类,在里面返回一个 DruidStatViewServlet,WebStatFilter以及一个DataSource的bean,具体配置如下:
PS:
因为我的配置类,不在默认路径下,所以,我还在启动类增加了扫描路径,在@SpringBootApplication增加了 scanBasePackages 扫描路径
启动完成后,会看到打印如下的话:
[main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} inited
说明成功了,然后我们访问: http://localhost:8080/druid/index.html
就会进入监控见面,需要输入账号密码,输入在配置类配置的账号密码,会进入如下页面
就能监控一些东西了.
如果自己想配置一下其它的配置,可以到drui的github上进行查看,下面是地址:https://github.com/alibaba/druid/wiki/%E9%A6%96%E9%A1%B5
到这,文章就结束了!
以上,均为本人测试而得出的结果,可能会有出入,或者错误,欢迎指正
欢迎转载,请注明出处跟作者,谢谢!
先介绍一下开发环境:
jdk版本是1.8
springboot的版本是1.4.1
开发工具为 intellij idea
首先我们先引入druid包的依赖,在项目的pom文件中添加以下内容:
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.26</version> </dependency>
------------------------------------分割线-------------------------------------
引入依赖后,我们根据druid包的文档进行配置.首先,我们在properties配置文件增加如下数据库连接一些简单的参数
spring.datasource.url = jdbc:mysql://localhost:3306/springboot #替换默认的数据库连接池 spring.datasource.type= com.alibaba.druid.pool.DruidDataSource spring.datasource.username = root spring.datasource.password = 123456 spring.datasource.driverClassName = com.mysql.jdbc.Driver # 下面为连接池的补充设置,应用到上面所有数据源中 # 初始化时建立物理连接的个数。 spring.datasource.initialSize=5 # 最小连接的个数。 spring.datasource.minIdle=5 # 最大连接的个数。 spring.datasource.maxActive=10
------------------------------------分割线-------------------------------------
上面的配置,只是让我们替换了数据源的配置而已,接下来,我们还需要配置一下监控
配置一个叫 DruidStatViewServlet 的servlet来进入监控页面
配置一个叫 WebStatFilter 的过滤器来过滤一些请求
我们配置一个配置类,在里面返回一个 DruidStatViewServlet,WebStatFilter以及一个DataSource的bean,具体配置如下:
package com.zk.employee.utils.db; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.support.http.StatViewServlet; import com.alibaba.druid.support.http.WebStatFilter; import org.springframework.beans.factory.annotation.Value; 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; import javax.sql.DataSource; import java.sql.SQLException; /** * 创建人:贺小五 * 描述: * 数据源 druid 监控注册类, * 参照 https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE_StatViewServlet%E9%85%8D%E7%BD%AE * xml文件配置而成,如果要修改,进入上面的地址参考修改 */ @Configuration public class DruidConfiguration { @Bean public ServletRegistrationBean druidServlet() { ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*"); //添加初始化参数:initParams //白名单: //servletRegistrationBean.addInitParameter("allow","127.0.0.1"); //IP黑名单 (存在共同时,deny优先于allow) : 如果满足deny的话提示:Sorry, you are not permitted to view this page. //servletRegistrationBean.addInitParameter("deny","192.168.1.73"); //登录查看信息的账号密码. servletRegistrationBean.addInitParameter("loginUsername","admin"); servletRegistrationBean.addInitParameter("loginPassword","123456"); //是否能够重置数据. servletRegistrationBean.addInitParameter("resetEnable","false"); return servletRegistrationBean; } /** * 配置过滤器 **/ @Bean public FilterRegistrationBean filterRegistrationBean() { FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(); filterRegistrationBean.setFilter(new WebStatFilter()); //过滤地址 filterRegistrationBean.addUrlPatterns("/*"); //不需要参与过滤的地址或者文件 filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"); return filterRegistrationBean; } @Bean public DataSource druidDataSource(@Value("${spring.datasource.driverClassName}") String driver, @Value("${spring.datasource.url}") String url, @Value("${spring.datasource.username}") String username, @Value("${spring.datasource.password}") String password, @Value("${spring.datasource.initialSize}")int initialSize, @Value("${spring.datasource.minIdle}") int minIdle, @Value("${spring.datasource.maxActive}") int maxActive) { DruidDataSource druidDataSource = new DruidDataSource(); druidDataSource.setDriverClassName(driver); druidDataSource.setUrl(url); druidDataSource.setUsername(username); druidDataSource.setPassword(password); druidDataSource.setInitialSize(initialSize); druidDataSource.setMinIdle(minIdle); druidDataSource.setMaxActive(maxActive); try { druidDataSource.setFilters("stat, wall"); } catch (SQLException e) { e.printStackTrace(); } return druidDataSource; } }
PS:
因为我的配置类,不在默认路径下,所以,我还在启动类增加了扫描路径,在@SpringBootApplication增加了 scanBasePackages 扫描路径
启动完成后,会看到打印如下的话:
[main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} inited
说明成功了,然后我们访问: http://localhost:8080/druid/index.html
就会进入监控见面,需要输入账号密码,输入在配置类配置的账号密码,会进入如下页面
就能监控一些东西了.
如果自己想配置一下其它的配置,可以到drui的github上进行查看,下面是地址:https://github.com/alibaba/druid/wiki/%E9%A6%96%E9%A1%B5
到这,文章就结束了!
以上,均为本人测试而得出的结果,可能会有出入,或者错误,欢迎指正
欢迎转载,请注明出处跟作者,谢谢!
相关文章推荐
- Springboot整合Mybatis分页使用Druid监控SQL日志
- springboot整合mybatis使用阿里(阿里连接池)和xml方式
- 使用Druid对SQL执行情况进行监控,以及SQL注入等的检查
- SpringBoot系列七:SpringBoot 整合 MyBatis(配置 druid 数据源、配置 MyBatis、事务控制、druid 监控)
- (二十二)SpringBoot之使用Druid连接池以及SQL监控和spring监控
- SpringBoot学习:整合MyBatis,使用Druid连接池
- Spring+SpringMVC+MyBatis+easyUI整合优化篇(十一)数据层优化-druid监控及慢sql记录
- Spring boot之使用Druid并配置SQL监控
- Spring Boot使用Druid进行维度的统计和监控
- SpringBoot整合Mybatis时使用Druid数据库连接池
- spring-boot整合mybatis(使用Fiddler抓包工具进行测试)
- spring-boot集成mybatis使用Druid监控
- SpringBoot整合Mybatis使用Druid数据库连接池
- 框架篇-Spring+Mybatis整合Druid连接池,并配置SQL监控
- (十一)Spring Boot整合Mybatis使用druid实现多数据源自动切换
- mybatis使用spring-druid数据源连接池配置log4j打印sql语句以及开启监控平台
- SpringBoot之使用Druid连接池以及SQL监控和spring监控
- (15)Spring Boot使用Druid和监控配置【从零开始学Spring Boot】
- Spring-Boot学习笔记-整合Mybatis-Druid-PageHelper
- Spring MVC+Mybatis 执行存储过程,使用Map进行参数的传递