要在jamon
中使用spring
,described使用JamonPerformanceMonitorInterceptor
并通过applicationContext.xml
将其置于弹簧AOP机制中。它被解释了,tests in it's sources中有一个例子。不幸的是,我想构建一个没有任何xml配置的spring-boot应用程序
是否可以使用某些注释将JamonPerformanceMonitorInterceptor
包含在弹簧中?
答案 0 :(得分:2)
迟到总比不上......
我遇到了同样的情况:我需要在没有任何XML配置的情况下配置JAMon。大多数在线示例(包括JAMon源代码中的注释)都宣传了XML配置的灵活性,但我找不到任何基于注释的配置示例。基于注释的配置也不一定不那么灵活,它们只需要在概念上分开,而不是与应用程序的功能部分混淆。我认为这样的顾问可以是一个很好的例子:
@Component
public class MonitoringAdvisor extends AbstractPointcutAdvisor {
private final StaticMethodMatcherPointcut pointcut = new StaticMethodMatcherPointcut() {
@Override
public boolean matches(Method method, Class<?> targetClass) {
return targetClass.isAnnotationPresent(RestController.class);
}
};
@Override
public Pointcut getPointcut() {
return this.pointcut;
}
@Override
public Advice getAdvice() {
return new JamonPerformanceMonitorInterceptor(true, true);
}
}
这个顾问会让Spring / AOP知道对使用@RestContrller
注释的Spring bean的任何方法运行JAMon监控建议。应该将此顾问程序配置/添加到与其他控制器相同的Spring上下文中。
注意,在我的情况下,我特别想监视我的其他控制器。人们可以根据自己的需要调整顾问。 (在我的代码中,我使用了更高级/可配置的顾问版本)
答案 1 :(得分:0)
这Spring Boot sample application有用吗?
以下是Spring AOP manual的相关部分。