zoukankan      html  css  js  c++  java
  • 项目性能监控之javamelody

    1.引入jar包JavaMelody

    <!-- Java应用程序监控JavaMelody begin -->
    <!-- 启动后直接http://localhost:2121/monitoring查看参数 -->
        <dependency>
           <groupId>net.bull.javamelody</groupId>
           <artifactId>javamelody-core</artifactId>
           <version>1.70.0</version>
       </dependency>
    <!-- Java应用程序监控JavaMelody end-->

    2.不需做任何配置,启动项目后

    访问:http://<host>/<context>/monitoring

    如http://localhost:2121/demo/monitoring即可访问

    javamelody启动原理

    按照正常使用步骤,除了导入javamelody的jar包,还需要在web.xml配置文件里,配置过滤器filter和filter-mapping,还有一个listener监听器。

    为什么现在只需导入jar包,不需要任何配置,启动容器监控程序也跟着启动?这个要从Servlet3.0的规范说起。

    Servlet3.0

    Servlet3.0对于模块化支持

    也就是说现在我们可以把各Web组件单独拿出来进行开发,之后把它们打成对应的jar包放到主项目中就可以了,而不必像之前那样——所有的内容都必须在web.xml文件中进行定义。有了对模块化的支持后我们在实际应用中就可以把某些通用功能的Filter、Listener、Servlet作为一个单独的Web模块进行定义,在需要使用它们的项目中就把对应Web模块对应的jar包加进去就可以了。是不是很有用呢?接下来我们就来看一下这些Web组件究竟是怎样模块化的。      

    Web模块打成的jar包的内容的文件结构要求是这个样子的:
        |--META-INF
    |     |--web-fragment.xml
    |     |--resources
    |     |     |--jsp、图片等,相当于web的根目录
    |--class文件和类路径下的文件

    容器启动时,会去读取每个jar包的META-INF下的信息

    查看javamelody-core的jar包会发现,在META-INF文件夹下有个web-fragment.xml,说明这个jar包本身就是一个Web模块

    打开这个文件,会发现,其实运行监控的过滤器和监听器,已经在这个文件里定义了。这也是为什么不需要再做配置的原因

    Servlet 3.0需要Tomcat 7.0以上版本才支持(包含7.0)

  • 相关阅读:
    new的实现原理
    call, apply, bind的内部实现原理
    redux基础第二讲——react-redux
    redux基础第一讲
    React组件的数据
    ES6中的super
    ES5和ES6中实现对象和继承的方法对比
    react组件的生命周期
    浅谈js继承的几种方法
    LeetCode 5274. Number of Ways to Stay in the Same Place After Some Steps
  • 原文地址:https://www.cnblogs.com/ajax-li/p/7884317.html
Copyright © 2011-2022 走看看