基于注释的jamon在春天的用法?

时间:2015-01-20 22:58:44

标签: java spring annotations aop jamon

要在jamon中使用springdescribed使用JamonPerformanceMonitorInterceptor并通过applicationContext.xml将其置于弹簧AOP机制中。它被解释了,tests in it's sources中有一个例子。不幸的是,我想构建一个没有任何xml配置的spring-boot应用程序 是否可以使用某些注释将JamonPerformanceMonitorInterceptor包含在弹簧中?

2 个答案:

答案 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的相关部分。