У меня есть аннотация, подобная этой (в Spring Boot 2):
package com.test;
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface MyAnnotation { }
и мета-аннотация:
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@MyAnnotation
public @interface MyEndpoint{ }
Как определить аспект для выполнения перед каждым методом, который имеет @MyAnnotation?
Если я определю его ниже,
@Before("execution(public * *(..)) && @annotation(myAnnotation)")
public void authorize(JoinPoint pjp, MyAnnotation myAnnotation) { }
, тогда метод authorize
вызывается только
@MyAnnotation()
public myMethod(){}
и НЕ в этом случае:
@MyEndpoint()
public myMethod() {}
спасибо