Pointcut перед методами с аннотацией из определенного пакета - PullRequest
0 голосов
/ 07 ноября 2018

С AspectJ я бы хотел создать pointcut перед вызовами определенных методов. Эти методы:

  • В веб-контроллере REST
  • Аннотированный с аннотацией из org.springframework.web.bind.annotation пакета с именем, оканчивающимся на ' Mapping ' (например: org.springframework.web.bind. annotation.PostMapping).

Я создал следующий класс:

@Aspect
@Component
@Slf4j
public class TestAspect {

    @Before("within(@org.springframework.web.bind.annotation.RestController *) && @annotation(org.springframework.web.bind.annotation.PostMapping)")
    public void beforeMethod(JoinPoint joinPoint){
        log.debug("Before method {}", joinPoint.getSignature().getName());
    }

}

Работает хорошо, но я хочу сделать то же самое для других Отображение аннотаций. Атрибут ' @ annotation ' не принимает шаблон в качестве значения, @annotation (org.springframework.web.bind.annotation. *) Не допускается.

Как это сделать без дублирования атрибута @ annotation для каждой сопоставления аннотации пакета?

...