iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >springboot项目中实现访问druid内置监控页面
  • 202
分享到

springboot项目中实现访问druid内置监控页面

2024-04-02 19:04:59 202人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

SpringBoot 访问druid内置监控页面 1、首先加入druid依赖 <dependency> <groupId>com.alibaba&

SpringBoot 访问druid内置监控页面

1、首先加入druid依赖


<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.9</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  

3、启动项目

访问页面Http://127.0.0.1:8001/druid/sql.html,就可以访问监控页面了,其中ip和端口号为项目的ip和端口号。

页面效果如下:

4、设置druid访问页面的用户名和密码

只需要在springboot启动类中加入@bean配置即可:


@Bean
public ServletReGIStrationBean<StatViewServlet> druidStatViewServlet() {
	ServletRegistrationBean<StatViewServlet> registrationBean = new ServletRegistrationBean<>(new StatViewServlet(),  "/druid                                                                                                            
  @Bean                                                                                                          
  public ServletRegistrationBean druidStatViewServlet() { 
     //先配置管理后台的servLet,访问的入口为/druid/                                                       
      ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(                             
             new StatViewServlet(), "/druid                                                                                                                      
 @Bean                                                                                                                    
 public FilterRegistrationBean druidStatFilter(){                                                                         
     FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(                                          
             new WEBStatFilter());                                                                                        
     // 添加过滤规则.                                                                                                           
     filterRegistrationBean.addUrlPatterns("                          
  @Bean(name = "statFilter")                                                 
  public StatFilter statFilter(){                                            
      StatFilter statFilter = new StatFilter();                              
      //慢sql时间设置,即执行时间大于200毫秒的都是慢sql                                         
      statFilter.setSlowSqlMillis(30);                                       
      statFilter.setLogSlowSql(true);
      statFilter.setMergeSql(true);                                        
      return statFilter;                                                     
  }                                                                          
                                                                            
  @Bean(name = "logFilter")                                                  
  public Slf4jLogFilter logFilter(){                                         
      Slf4jLogFilter slf4jLogFilter = new Slf4jLogFilter();                  
      slf4jLogFilter.setDataSourceLogEnabled(true);                          
      slf4jLogFilter.setStatementExecutableSqlLogEnable(true);               
      return slf4jLogFilter;                                                 
  }    

2、修改application.yml,增加慢sql日志的输出策略


  logging:
   pattern: #配置日志格式 %d:日期 , %msg:日志信息 ,%n换行
    console: "%d - %msg%n" #设置控制台打印格式
   file: "%d{yyyy/MM/dd-HH:mm} %-5level %logger- %msg%n"
 level:
  root: INFO
     org:
       springframework:
       security: ERROR
       web: ERROR
       hhu.yu: INFO
 file:
  name: YU.log
     max-history: 30

3、修改数据源配置,设置慢sql拦截器和sql拦截器


@Bean                                                                    
 @Primary                      
 @Qualifier("mainDataSource")                                             
 @ConfigurationProperties(prefix = "spring.datasource.main")              
 DataSource mainConfig() throws SQLException{                             
     DruidDataSource build = DruidDataSourceBuilder.create().build();     
     List<Filter> filters = new ArrayList<>();                            
     filters.add(statFilter());                                           
     filters.add(logFilter());                                            
     build.setProxyFilters(filters);                                      
     return build;   

重启系统后查看druid监控后台,由于设置了慢sql的时间为大于200毫秒,所以执行时间大于200毫秒的都会被红色标注。查看日志文件,可以看到日志文件中存在慢sql记录的数据(包括慢sql以及这条sql语句执行的时间)

开启Spring监控

在监控面板中开启spring监控功能


@Configuration
@EnableAspectJAutoProxy(proxyTargetClass = true)
public class DruidAspectConfig {
    @Bean
    public DruidStatInterceptor druidStatInterceptor() {
        DruidStatInterceptor dsInterceptor = new DruidStatInterceptor();
        return dsInterceptor;
    }
    @Bean
    @Scope("prototype")
    public jdkRegexpMethodPointcut druidStatPointcut() {
        JdkRegexpMethodPointcut pointcut = new JdkRegexpMethodPointcut();
        pointcut.setPatterns("com.qa.cloud.mapper.*","com.qa.cloud.service.*");
        return pointcut;
    }
    @Bean
    public DefaultPointcutAdvisor druidStatAdvisor(DruidStatInterceptor druidStatInterceptor, JdkRegexpMethodPointcut druidStatPointcut) {
        DefaultPointcutAdvisor defaultPointAdvisor = new DefaultPointcutAdvisor();
        defaultPointAdvisor.setPointcut(druidStatPointcut);
        defaultPointAdvisor.setAdvice(druidStatInterceptor);
        return defaultPointAdvisor;
    }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: springboot项目中实现访问druid内置监控页面

本文链接: https://www.lsjlt.com/news/128557.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • springboot项目中实现访问druid内置监控页面
    springboot 访问druid内置监控页面 1、首先加入druid依赖 <dependency> <groupId>com.alibaba&...
    99+
    2024-04-02
  • SpringBoot项目中怎么访问HTML页面
    本篇内容介绍了“SpringBoot项目中怎么访问HTML页面”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!SpringBoot默认的页面映...
    99+
    2023-06-21
  • SpringBoot项目中如何访问HTML页面
    目录1、将HTML页面存放在resources/static目录下的访问2、将HTML页面存放在resources/templates目录下的访问2.1 方式一解决SpringBoo...
    99+
    2024-04-02
  • SpringBoot项目如何访问jsp页面的示例代码
    最近在接支付项目,从官方下了个及时到款的demo,想在springBoot项目中运行起来,发现访问jsp的时候直接会访问到jsp页面的源文件。如何在springBoot项目中访问到jsp页面?添加pom依赖首先在原来的pom文件基础上加上这...
    99+
    2023-05-31
    spring boot jsp
  • springboot实现启动直接访问项目地址
    目录springboot启动直接访问项目地址方式一方式二springboot运行无法访问创建一个springBoot 项目项目配置文件springBoot启动类配置springboo...
    99+
    2024-04-02
  • springboot微服务项目集成html页面的实现
    目录1, 在 pom.xml 中添加以下依赖:2, 在 application.properties 中添加以下配置:3,创建 HTML 模板文件4,创建控制器5, 添加依赖6,配置...
    99+
    2023-05-14
    springboot集成html页面 springboot html页面
  • springboot如何实现启动直接访问项目地址
    这篇文章主要为大家展示了“springboot如何实现启动直接访问项目地址”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“springboot如何实现启动直接访问项目地址”这篇文章吧。spring...
    99+
    2023-06-22
  • springboot微服务项目集成html页面怎么实现
    这篇“springboot微服务项目集成html页面怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“springboo...
    99+
    2023-07-05
  • 怎么中JAVA项目中实现一个访问者模式
    这篇文章将为大家详细讲解有关怎么中JAVA项目中实现一个访问者模式,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。访问者模式:一个作用于某对象结构中各元素的操作,使你可以在不改变各元素类数据结...
    99+
    2023-05-31
    java ava 访问者模式
  • 基于Pinpoint对SpringCloud微服务项目实现全链路监控的问题
    目录1.全链路监控的概念2.pinpoint链路监控组件的介绍3.使用docker部署pinpoint监控组件4.在微服务中集成pinpoint-agent4.1.pinpoint-...
    99+
    2024-04-02
  • SpringBoot整合ip2region实现使用ip监控用户访问城市的详细过程
    目录举个栗子快速上手第一步,将整个项目down下来,找到data目录,进入第二步,创建maven项目,引入依赖第三步,编写测试类项目实现1、思路分析2、配置文件SpringBoot项...
    99+
    2024-04-02
  • vue项目中data数据之间互相访问的实现
    如下代码: <div id="vue_det"> <input type="number" v-model="text"> ...
    99+
    2024-04-02
  • 在spring boot项目中如何实现使用thymeleaf实现页面跳转
    本篇文章为大家展示了在spring boot项目中如何实现使用thymeleaf实现页面跳转,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。前言在学习springboot 之后想结合着html做个小d...
    99+
    2023-05-31
    springboot thymeleaf 页面跳转
  • 在vue移动端项目中怎么实现页面缓存
    这篇文章主要介绍在vue移动端项目中怎么实现页面缓存,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!背景在移动端中,页面跳转之间的缓存是必备的一个需求。例如:首页=>列表页=>详情页。从首页进入列表页,列表...
    99+
    2023-06-14
  • 用定制标签库和配置文件实现对JSP页面元素的访问控制 (转)
    用定制标签库和配置文件实现对JSP页面元素的访问控制 (转)[@more@]      用定制标签库和配置文件实现对JSP页面元素的访问控制  控制客户端访问是开发一个基于B/S的架构的系统的开发者必...
    99+
    2023-06-03
  • 通过MySQL开发实现高并发访问控制的项目经验分享
    通过MySQL开发实现高并发访问控制的项目经验分享随着互联网的快速发展,许多网站和应用程序面临着高并发访问的挑战。在这种情况下,让系统保持高可用性和良好的性能变得尤为重要。在最近的一项项目中,我经历了一个高并发访问控制的实现过程,并通过My...
    99+
    2023-11-02
    高并发 访问控制 MySQL开发
  • vue项目中data数据之间互相访问怎么实现
    这篇文章主要讲解了“vue项目中data数据之间互相访问怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue项目中data数据之间互相访问怎么实现”吧!如下代码: &nbs...
    99+
    2023-06-30
  • springboot项目整合mybatis并配置mybatis中间件的实现
    记录创建springboot项目并配置mybatis中间件: 资源准备及版本说明 编程工具:IDEA JDK版本:1.8 Maven版本:Apache Maven 3.6.3 spr...
    99+
    2024-04-02
  • SpringBoot中自定义注解实现控制器访问次数限制实例
    今天给大家介绍一下SpringBoot中如何自定义注解实现控制器访问次数限制。在Web中最经常发生的就是利用恶性URL访问刷爆服务器之类的攻击,今天我就给大家介绍一下如何利用自定义注解实现这类攻击的防御操作。其实这类问题一般的解决思路就是:...
    99+
    2023-05-31
    spring 控制器 制器
  • 如何解决基于Pinpoint对SpringCloud微服务项目实现全链路监控的问题
    这篇文章主要为大家展示了“如何解决基于Pinpoint对SpringCloud微服务项目实现全链路监控的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决基于Pinpoint对Sprin...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作