Использование хамона на основе аннотаций весной?

Использовать jamon в spring Описано использовать JamonPerformanceMonitorInterceptor и поставить его на пружины AOP-механизм через applicationContext.xml, Это объясняется, и в его источниках есть пример в тестах. К сожалению, я хочу собрать приложение с весенней загрузкой без какой-либо xml-конфигурации.
Можно ли использовать некоторые аннотации для включения JamonPerformanceMonitorInterceptor до весны?

2 ответа

Лучше поздно, чем никогда...

У меня была та же самая ситуация: мне нужно было настроить JAMon без какой-либо конфигурации XML. Большинство онлайн-примеров (включая комментарии в исходном коде 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 о запуске рекомендаций по мониторингу JAMon для любого метода bean-компонента Spring, помеченного как @RestContrller, Этот советник должен быть настроен / добавлен в тот же контекст Spring, что и остальные контроллеры.

Обратите внимание, что в моем случае я специально хотел контролировать мои остальные контроллеры. Можно адаптировать советника в соответствии со своими потребностями. (В моем коде я использую более продвинутую / настраиваемую версию представленного советника)

Помогло ли это пример приложения Spring Boot?

Вот соответствующая часть руководства Spring AOP.

Другие вопросы по тегам