`
郑云飞
  • 浏览: 814583 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring Boot使用Druid和监控配置2中方式

 
阅读更多

(1)    ——   Druid简单介绍,具体看官网;

(2)     —— pom.xml配置druid依赖包;

(3)    ——  配置application.properties加入数据库源类型等参数;

(4)     —— 编写druid servletfilter提供监控页面访问;

(5)     —— 输入地址进行测试; 

 

DruidJava语言中最好的数据库连接池,并且能够提供强大的监控和扩展功能。

业界把 Druid  HikariCP 做对比后,虽说 HikariCP 的性能比 Druid 高,但是因为 Druid 包括很多维度的统计和分析功能,所以这也是大家都选择使用它的原因。

下面来说明如何在 Spring Boot 中配置使用Druid

(1)添加Maven依赖 (jar)

      <dependency>

            <groupId>com.alibaba</groupId>

            <artifactId>druid</artifactId>

            <version>1.0.18</version>

 

</dependency>

(2)、配置数据源相关信息

 

数据库访问配置

主数据源,默认的

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

spring.datasource.driver-class-name=com.MySQL.jdbc.Driver

spring.datasource.url=jdbc:mysql://localhost:3306/test

spring.datasource.username=root

spring.datasource.password=123456

 

下面为连接池的补充设置,应用到上面所有数据源中

初始化大小,最小,最大

spring.datasource.initialSize=5

spring.datasource.minIdle=5

spring.datasource.maxActive=20

配置获取连接等待超时的时间

spring.datasource.maxWait=60000

配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒

spring.datasource.timeBetweenEvictionRunsMillis=60000

配置一个连接在池中最小生存的时间,单位是毫秒

spring.datasource.minEvictableIdleTimeMillis=300000

spring.datasource.validationQuery=SELECT 1 FROM DUAL

spring.datasource.testWhileIdle=true

spring.datasource.testOnBorrow=false

spring.datasource.testOnReturn=false

打开PSCache,并且指定每个连接上PSCache的大小

spring.datasource.poolPreparedStatements=true

spring.datasource.maxPoolPreparedStatementPerConnectionSize=20

配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙

spring.datasource.filters=stat,wall,log4j

通过connectProperties属性来打开mergeSql功能;慢SQL记录

spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

合并多个DruidDataSource的监控数据

#spring.datasource.useGlobalDataSourceStat=true

需要注意的是:spring.datasource.type旧的spring boot版本是不能识别的。

 

这时候启动应用就可以看到看到打印信息就是使用我们配置的数据源了:

[main] com.alibaba.druid.pool.DruidDataSource   : {dataSource-1} inited

 

 

(3) 配置监控统计功能

 

 配置方式1

package org.spring.springboot.filter;

import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;

import com.alibaba.druid.support.http.WebStatFilter;

/**
 * Druid的StatFilter
 * @author   郑云飞(799078779)
 * @create    2016年3月17日
 */
@WebFilter(filterName="druidWebStatFilter",urlPatterns="/*",
        initParams={
                @WebInitParam(name="exclusions",value="*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")// 忽略资源
        })
public class DruidStatFilter extends WebStatFilter {

}

 

package org.spring.springboot.filter;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import com.alibaba.druid.support.http.StatViewServlet;
/**
 * StatViewServlet
 * @author zhengyunfei(799078779)
 * @create 2016年3月17日
 */
@SuppressWarnings("serial")
@WebServlet(urlPatterns = "/druid/*",
        initParams={
                @WebInitParam(name="allow",value="10.0.30.37,127.0.0.1"),// IP白名单 (没有配置或者为空,则允许所有访问)
                @WebInitParam(name="deny",value="192.168.16.111"),// IP黑名单 (存在共同时,deny优先于allow)
                @WebInitParam(name="loginUsername",value="admin"),// 用户名
                @WebInitParam(name="loginPassword",value="admin"),// 密码
                @WebInitParam(name="resetEnable",value="false")// 禁用HTML页面上的“Reset All”功能
        })
public class DruidStatViewServlet extends StatViewServlet {

}

 最后在App.java类上加上注解:@ServletComponentScan是的spring能够扫描到我们自己编写的servletfilter

注意不要忘记在 SpringBootSampleApplication.java 上添加 @ServletComponentScan 注解,不然就是404了。

然后启动项目后访问 http://127.0.0.1:8080/druid/index.html 即可查看数据源及SQL统计等

配置方式二:

package org.spring.springboot.config.druid;
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 com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
/**
 * druid 配置.
 * 这样的方式不需要添加注解:@ServletComponentScan
 * @author zhengyunfei
 */
@Configuration
public class DruidConfiguration {
/**
 * 注册一个StatViewServlet
 * @return
 */
@Bean
public ServletRegistrationBean DruidStatViewServle(){
        //org.springframework.boot.context.embedded.ServletRegistrationBean提供类的进行注册.
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
        //添加初始化参数:initParams
        //白名单:
        servletRegistrationBean.addInitParameter("allow","10.0.30.37,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;
        }

/**
 * 注册一个:filterRegistrationBean
 * @return
 */
@Bean
public FilterRegistrationBean druidStatFilter(){
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
        //添加过滤规则.
        filterRegistrationBean.addUrlPatterns("/*");
        //添加不需要忽略的格式信息.
        filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
        return filterRegistrationBean;
        }
}

 启动应用就可以访问:http://127.0.0.1:8080/druid/index.html输入账号和密码:admin2/123456 就可以访问了

分享到:
评论

相关推荐

    15. Spring Boot使用Druid和监控配置【从零开始学Spring Boot】

    在本篇【从零开始学Spring Boot】系列中,我们将探讨如何在Spring Boot项目中集成并配置Druid数据源以及其监控功能。Druid是一个强大的数据库连接池,它提供了丰富的监控、扩展性以及性能优化特性。Spring Boot简化...

    Spring Boot druid 以及相关sql、Spring监控配置demo

    在这个"Spring Boot druid 以及相关sql、Spring监控配置demo"中,我们将探讨如何在Spring Boot项目中集成Druid数据源,以及如何配置SQL监控和Spring的监控功能。 首先,让我们了解Druid数据源的核心特性: 1. **高...

    简单Spring boot和druid监控demo

    Spring Boot 是一个基于Java的轻量级框架,它极大地简化了Spring应用的初始搭建以及开发过程。...这个"简单Spring boot和druid监控demo"就是为你提供了一个快速入门的参考,帮助你在实际项目中快速实践这些配置。

    Spring boot+druid 实现SQL监控

    本文使用Druid的连接池,然后配置Druid的相关属性,完成对Spring web工程的JDBC监控。 其实,我采用Druid替换其它连接池,最关键的一个理由是Druid有对SQL执行的监控统计功能。 druid 实现 SQL、URI 等监控

    spring-boot_mysql_mybatis_druid

    **Spring Boot** 是一个基于Spring框架的快速开发工具,它简化了设置和配置过程,使得开发者能够快速构建独立的、生产级别的Java应用。Spring Boot通过自动配置和“起步依赖”(Starter POMs)特性,减少了大量的...

    Spring Boot + Druid + Mybatis + Atomikos 配置多数据源 并支持分布式事务

    2. 配置数据源:为每个数据源创建一个DataSource bean,使用Druid的配置类和属性配置不同的数据库连接。 3. 配置事务管理器:使用Atomikos的UserTransactionManager和JtaTransactionManager,注册到Spring Boot的...

    3-7 Spring Boot 集成 Druid 监控数据源.pdf1

    Spring Boot 集成 Druid 监控数据源是提高应用程序性能和稳定性的重要步骤。Druid 是阿里巴巴开源项目中的一款高效数据库连接池,它不仅提供基本的数据库连接管理,还具有强大的监控和扩展功能。 首先,Druid 包含...

    spring-boot-druid

    2. 配置文件:在Spring Boot的配置文件(如`application.properties`或`application.yml`)中,你需要配置Druid的数据源参数,包括数据库连接信息、最大最小连接数、超时时间等。 例如,在`application.properties`...

    16. Spring Boot使用Druid(编程注入)【从零开始学Spring Boot】

    下面将详细介绍Druid数据源以及在Spring Boot中的配置与使用。 首先,Druid数据源是阿里巴巴开源的一款高性能、基于连接池的数据库连接管理工具,它集成了监控统计、SQL解析、Web监控等功能,旨在提高数据库的连接...

    从零开始学Spring Boot

    1.18 Spring Boot使用Druid和监控配置 1.19 Spring Boot使用Druid(编程注入) 1.20 Spring Boot普通类调用bean 1.21 使用模板(thymeleaf-freemarker) 1.22 Spring Boot 添加JSP支持 1.23 Spring Boot Servlet ...

    Spring Boot使用Druid和监控配置方法

    在Spring Boot中集成和配置...总的来说,Druid在Spring Boot中的配置主要包括添加依赖、配置数据源、以及设置监控和过滤器。这样不仅可以提升数据库操作的效率,还能对数据库性能进行实时监控,及时发现并解决问题。

    spring-boot+druid整合

    整合Spring Boot、Druid和MyBatis后,你可以享受到Spring Boot的自动配置和便捷性,同时利用Druid的监控功能和MyBatis的灵活性。这将大大提高开发效率,使数据库操作更加简单易用。通过监控页面,你可以实时查看...

    Spring Boot整合Druid Demo项目代码包

    Druid监控页面的开启也很简单,只需在配置类中添加DruidStatViewServlet和DruidWebStatFilter,然后在Spring Boot的启动类上添加`@EnableWebMvc`注解即可。访问`/druid`路径就能看到监控页面。 这个Demo项目展示了...

    参照阿里druid整理druid-spring-boot-starter的demo

    这个"参照阿里druid个人整理druid-spring-boot-starter可运行demo"是基于Spring Boot 2.x版本的,包含了Druid的基本配置和使用。为了构建一个完整的Druid配置,你需要以下几个步骤: 1. **依赖添加**:在`pom.xml`...

    spring boot基于DRUID实现数据源监控过程解析

    DRUID 是阿里巴巴开源的数据库连接池,提供了数据源监控、SQL 执行分析、Web 应用防火墙等功能,在 Spring Boot 中可以通过依赖的方式引入 DRUID,实现数据源监控和加密。 5. 数据源监控实现过程 数据源监控实现...

    Spring Boot+Druid+Mybatis实现JTA分布式事务

    本教程将详细讲解如何使用Spring Boot、Druid和Mybatis来实现JTA(Java Transaction API)分布式事务。这是一项高级技术,它允许在多数据库环境或者微服务架构中进行一致性的数据操作。 首先,让我们了解什么是JTA...

    Spring boot+mybatis+druid+SQL监控

    本文使用Druid的连接池,然后配置Druid的相关属性,完成对Spring web工程的JDBC监控。 其实,我采用Druid替换其它连接池,最关键的一个理由是Druid有对SQL执行的监控统计功能。 druid 实现 SQL、URI 等监控

    study-spring-boot-druid.zip

    集成Druid后,我们可以通过Spring Boot的自动配置机制,无缝地使用Druid数据源。在实际项目中,我们还可以结合Spring Data JPA、MyBatis等ORM框架,进一步优化数据库操作。 总结来说,Spring Boot与Druid的结合,为...

    Spring Boot整合mybatis 配置Druid数据源开启sql监控

    在Spring Boot应用中整合MyBatis并配置Druid数据源以开启SQL监控,是一个常见的数据库管理与优化操作。下面将详细介绍这一过程。 首先,我们需要理解Spring Boot、MyBatis和Druid这三个组件的作用。Spring Boot简化...

Global site tag (gtag.js) - Google Analytics