在Spring-Boot项目中使用JavaMelody监视spring bean

时间:2015-01-08 19:43:53

标签: spring spring-boot java-melody

我正在尝试基于Spring教程Building a RESTful Web Service监视REST应用程序,但在Java Melody文档页面中,配置依赖于web.xml文件,但spring项目没有这样的文件。我尝试在WebInitializer中使用java melody注释和设置contextConfigLocation,但是当我进入Java Melody页面时,我看不到Spring部分。

我的WebInitializar是这样的:

public class WebInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
    return application.sources(Application.class).properties();
}

@Override
public void onStartup(ServletContext servletContext) throws ServletException {
    servletContext.setInitParameter("contextConfigLocation", "classpath:net/bull/javamelody/monitoring-spring.xml");
    super.onStartup(servletContext);
}
}

我已将contextConfigLocation设置为Java Melody文档所说的。

我的控制员:

@RestController
@MonitoredWithSpring
public class GreetingController {

private static final String template = "Hello, %s!";
private final AtomicLong counter = new AtomicLong();


@RequestMapping("/greeting")
public Greeting greeting(@RequestParam(value="name", defaultValue="World") String name) {
    return new Greeting(counter.incrementAndGet(),
                        String.format(template, name));
}
}

有什么建议让它发挥作用吗?

2 个答案:

答案 0 :(得分:6)

现在有一个用javamelody监控Spring-boot应用程序的文档,包括Spring bean: https://github.com/javamelody/javamelody/wiki/SpringBootStarter

答案 1 :(得分:5)

您只需要Web应用程序中的javamelody依赖jar,并在spring应用程序上下文中注册两个bean:

@Bean
public HttpSessionListener javaMelodyListener(){
    return new net.bull.javamelody.SessionListener();
}

@Bean
public Filter javaMelodyFilter(){
    return new net.bull.javamelody.MonitoringFilter();
}