Второй аннотированный аспект не называется - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь разобраться в Spring AOP и сейчас сталкиваюсь с проблемой, что второй аспект, аннотированный TrackedSubTask, не вызывается, в то время как Tracked работает. Приветствуется любая помощь или подсказка.

Вот мои аннотированные классы:

@RestController
public class Demo {
    @Tracked
    @RequestMapping("/")
    public String index() {
        DemoImpl bar = new DemoImpl();
        bar.foo();
        return "Greetings from Spring Boot!";
    }
}

public class DemoImpl{
    @TrackedSubTask
    public void foo() {
        System.out.println("foo");
    }
}

Вот мои аннотации:

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Tracked  {
}

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface TrackedSubTask {
}

Вот мои аспекты:

@Aspect
@Component
class MyAspect {
    @Around("@annotation(annotation)")
    public Object first(ProceedingJoinPoint joinPoint, Tracked annotation) throws Throwable {
        Object proceed = joinPoint.proceed();
        return proceed;
    }

    @Around("@annotation(subTaskAnnotation)")
    public Object second(ProceedingJoinPoint joinPoint, TrackedSubTask subTaskAnnotation) throws Throwable {
        Object  proceed = joinPoint.proceed();
        return proceed;
    }
}

1 Ответ

0 голосов
/ 15 апреля 2020

Как правильно указал М. Дейн, Spring должен был управлять DemoImpl.

...