@target 切入点抛出 IllegalStateException

@target pointcut throws IllegalStateException

在 Spring 引导 AOP 应用程序中我有一个切入点 @target(MyAnnotation) || @annotation(MyAnnotation)。 如果将 MyAnnotation 放在使用此注释注释的执行对象或注释方法上,则应执行建议。

当我 运行 申请时,我得到

java.lang.IllegalArgumentException: Cannot subclass final class org.springframework.cloud.sleuth.log.Slf4jScopeDecorator

讨论了一个类似的问题 但似乎切入点太宽而我的不是,因为我在项目中只有少数注释 类 和 MyAnnotation

我把这个注解放在伪造客户端界面上,就像这样。

@MyAnnotation
@FeignClient(name="some-name", url="http://test.url")
public interface MyClient {
    @RequestMapping(method = RequestMethod.GET, value = "/endpoint")
    List<Store> getSomething();
}

知道我的切入点有什么问题吗?

好的,经过几个小时的调查,我用这个替换了我的切入点

@Around("execution(* (@MyAnnotation *).*(..)) || execution(@MyAnnotation * *(..))")

here所述,我只使用execution来避免创建代理。希望这有帮助