application.properties文件完整信息

#连接数据库
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://localhost:3306/empDB
spring.datasource.username=oukele
spring.datasource.password=oukele #连接池
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#初始化 、最小、最大
spring.datasource.initialSize = 5
spring.datasource.minIdle = 1
spring.datasource.maxActive = 20
#设置获取超时等待的时间
spring.datasource.maxWait = 60000
#配置一个连接在池中最小生存时间,单位是毫秒
spring.datasource.minEvictableIdleTimeMillis=300000 spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
spring.datasource.filters=stat,wall,logback

创一个 DruidConfig类

package com.nf.pro_emp.config;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.context.properties.ConfigurationProperties;
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; /**
* @author OUKELE
* @create 2019-03-22 11:27
*/ @Configuration
@ConfigurationProperties(prefix = "spring.datasource")//读取 application.properties里的内容
public class DruidConfig { //数据库 url
private String url;
//数据库用户名
private String username;
//数据库登陆密码
private String password;
//最大的连接数量
private int maxActive;
//初始化大小
private int initialSize;
// 设置 超时的等待时间
private int maxWait;
//最小的连接数量
private int minIdle;
//监控统计拦截的filters,如果去掉后监控界面sql将无法统计
private String filters; public String getFilters() {
return filters;
} public void setFilters(String filters) {
this.filters = filters;
} public String getUrl() {
return url;
} public void setUrl(String url) {
this.url = url;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public int getMaxActive() {
return maxActive;
} public void setMaxActive(int maxActive) {
this.maxActive = maxActive;
} public int getInitialSize() {
return initialSize;
} public void setInitialSize(int initialSize) {
this.initialSize = initialSize;
} public int getMaxWait() {
return maxWait;
} public void setMaxWait(int maxWait) {
this.maxWait = maxWait;
} public int getMinIdle() {
return minIdle;
} public void setMinIdle(int minIdle) {
this.minIdle = minIdle;
} //注册 Servlet 组件
@Bean
public ServletRegistrationBean statViewServlet(){
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
/*servletRegistrationBean.addInitParameter("allow", "192.168.1.3"); //白名单IP*/
servletRegistrationBean.addInitParameter("loginUsername", "oukele");
servletRegistrationBean.addInitParameter("loginPassword", "oukele");
return servletRegistrationBean;
} // 注册 Filter 组件
@Bean
public FilterRegistrationBean statFilter(){
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
//验证所有请求
filterRegistrationBean.addUrlPatterns("/*");
//对 *.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/* 不进行验证
filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
return filterRegistrationBean;
} //配置数据源
@Bean
public DataSource dataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName("org.mariadb.jdbc.Driver");
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
dataSource.setMaxActive(maxActive);
dataSource.setInitialSize(initialSize);
try {
dataSource.setFilters(filters);
} catch (SQLException e) {
//do nothing
}
dataSource.setMaxWait(maxWait);
dataSource.setMinIdle(minIdle);
return dataSource;
}
}

重启项目,浏览器输入 http://localhost:8888/druid/login.html

演示项目地址:https://github.com/oukele/springboot-druid

SpringBoot集成Druid实现监控的更多相关文章

  1. SpringBoot Druid整合,SpringBoot 集成Druid

    SpringBoot Druid整合,SpringBoot 集成Druid ================================ ©Copyright 蕃薯耀 2018年4月8日 http ...

  2. springboot 集成druid

    1.druid简介 Druid首先是一个数据库连接池.Druid是目前最好的数据库连接池,在功能.性能.扩展性方面,都超过其他数据库连接池,包括DBCP.C3P0.BoneCP.Proxool.JBo ...

  3. 【Java】Springboot集成Druid

    Springboot集成Druid方案:一个是在POM中直接配置druid-spring-boot-starter,不用写任何代码:一个是配置druid,写几行代码,可以加入:在方案一基础上加入sta ...

  4. MyBatis初级实战之三:springboot集成druid

    OpenWrite版: 欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kuber ...

  5. SpringBoot集成druid数据库连接池的简单使用

    简介 Druid是阿里巴巴旗下Java语言中最好的数据库连接池.Druid能够提供强大的监控和扩展功能. 官网: https://github.com/alibaba/druid/wiki/常见问题 ...

  6. springboot集成druid连接池

    使用druid连接池主要有几步: 1.添加jar和依赖 <groupId>org.mybatis.spring.boot</groupId> <artifactId> ...

  7. springboot集成druid+mybatis连接oracle数据库

    2.1.配置 druid 数据源 2. 随后要进行druid 的数据源的配置,如果要想使用druid 的数据源,那么首先一定要去修改 pom.xml 配置文件,引入以下包: oracle官网下载 oj ...

  8. SpringBoot集成Druid

    maven <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-b ...

  9. springboot 集成 druid mybatis-plus

    通过这篇配置成功: https://www.cnblogs.com/shine-rainbow/p/9618100.html 不过 mybatis 3.4.6 一直maven下载失败,于是直接在官方那 ...

随机推荐

  1. oauth2中org.springframework.security.core.userdetails.User无法转换为封装的AuthorizationInfoBean

    用springboot + oauth2 + redis搭建了一个项目,创建一个自定义的AuthorizationInfoBean继承org.springframework.security.core ...

  2. sql数据库的基础语句

    1, 创建数据库 create database database-name 2, 删除数据库 drop database dbname 3, 备份sql server 创建 备份数据的device ...

  3. HTTP协议之需要了解的网络基础

    HTTP(超文本传输协议)是应用层协议,构建在TCP/IP之上,主要用来完成客户端和服务端的通信.本文主要介绍一些和HTTP相关的内容. 1. TCP/IP 分为四层: 应用层:HTTP.DNS.FT ...

  4. SVN常用命令--Mac端【转载】

    * 版本库布局 1. trunk主干 trunk就是开发的主线,一般项目都是导入到主线来开发的. 2. branches分支 branches一般是trunk某个版本的拷贝,如果你想在某一段时间单独对 ...

  5. 串的模式匹配,KMP算法

    串的模式匹配 现考虑一个常用操作,在字符串s(我们称为主串)中的第pos开始处往后查找,看在主串s中有没有和子串p相匹配的的,如果有,则返回字串p第一次出现的位置. 暴力求解 int Index(ch ...

  6. LeetCode. 矩阵中的最长递增路径

    题目要求: 给定一个整数矩阵,找出最长递增路径的长度. 对于每个单元格,你可以往上,下,左,右四个方向移动. 你不能在对角线方向上移动或移动到边界外(即不允许环绕). 示例: 输入: nums = [ ...

  7. LC 416. Partition Equal Subset Sum

    题目 Given a non-empty array containing only positive integers, find if the array can be partitioned i ...

  8. selenium登录实验楼

    from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.s ...

  9. python — mysql基础知识

    目录 1 . 数据库的介绍 2. mysql 1 . 数据库的介绍 1.为什么要用数据库? 很多功能如果只是通过操作文件来改变数据是非常繁琐的,程序员需要做很多事情 对于多台机器或者多个进程操作用一份 ...

  10. DFA与动态规划

    1.牛客练习赛45 A 给定字符串, 求字符不相邻的"QAQ"子序列个数. $dp[i][0]$ 只匹配一个'Q'的方案数的前缀和. $dp[i][1]$ 只匹配"QA& ...