JavaMelody初使用

来源:互联网 发布:手机淘宝举报有用吗 编辑:程序博客网 时间:2024/06/09 11:29

第一步pom文件

<!-- javamelody-core --><dependency>    <groupId>net.bull.javamelody</groupId>    <artifactId>javamelody-core</artifactId>    <version>1.58.0</version></dependency><!-- itext, option to add PDF export --><dependency>    <groupId>com.lowagie</groupId>    <artifactId>itext</artifactId>    <version>2.1.7</version>    <exclusions>        <exclusion>            <artifactId>bcmail-jdk14</artifactId>            <groupId>bouncycastle</groupId>        </exclusion>        <exclusion>            <artifactId>bcprov-jdk14</artifactId>            <groupId>bouncycastle</groupId>        </exclusion>        <exclusion>            <artifactId>bctsp-jdk14</artifactId>            <groupId>bouncycastle</groupId>        </exclusion>    </exclusions></dependency>

第二歩web.xml

    <context-param>        <param-name>contextConfigLocation</param-name>        <param-value>            classpath:net/bull/javamelody/monitoring-spring-datasource.xml            classpath*:/applicationContext.xml        </param-value>    </context-param>
<filter>    <filter-name>javamelody</filter-name>    <filter-class>net.bull.javamelody.MonitoringFilter</filter-class>    <async-supported>true</async-supported></filter><filter-mapping>    <filter-name>javamelody</filter-name>    <url-pattern>/*</url-pattern>    <dispatcher>REQUEST</dispatcher>    <dispatcher>ASYNC</dispatcher></filter-mapping><listener>    <listener-class>net.bull.javamelody.SessionListener</listener-class></listener>

classpath:net/bull/javamelody/monitoring-spring-datasource.xml 这句一定要写在上面

第三歩:监控数据源

<bean id="mainDataSource" class="net.bull.javamelody.SpringDataSourceFactoryBean">        <property name="targetName" value="dataSource" />    </bean>

这里的数据源dataSource 是项目中数据源bean的id

完成以上步骤,访问http://<host>:<port>/projectName/monitoring
就可以看到监控的页面了
监控页面
监控页面

这个链接默认是所有人都访问的,我们可以加一个filter 来过滤/monitoring的请求

public class JavaMelodyFilter extends net.bull.javamelody.MonitoringFilter{    @Override    public void doFilter(ServletRequest srequest, ServletResponse sresponse, FilterChain chain)            throws IOException, ServletException {         HttpServletRequest request = (HttpServletRequest) srequest;         String uri = request.getRequestURI();         if (uri.indexOf("/monitoring") != -1) {             User user = (User)SecurityUtils.getSubject().getSession().getAttribute("user");             if(user == null || user.getIdentity()!=UserType.SYS){                  return;              }        }        super.doFilter(srequest, sresponse, chain);    }}

注意filter要继承net.bull.javamelody.MonitoringFilter

0 0