7

我正在尝试基于 Spring 教程Building a RESTful Web Service监视 REST 应用程序,但在 Java Melody 文档页面中,配置取决于 web.xml 文件,但 spring 项目没有这样的文件。我尝试使用 java melody 注释并在 WebInitializer 中设置 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));
}
}

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

4

2 回答 2

6

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

于 2015-07-12T21:13:42.057 回答
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();
}
于 2015-05-28T09:58:34.817 回答