我正在使用 aspectJ 1.8.10。在我的代码中,我有一个带有 ScheduledExecutorService 的 bean:
@Bean
public ScheduledExecutorService backgroundTaskExecutor() {
return Executors.newSingleThreadScheduledExecutor();
}
当 bean 实例化时,代理类抛出:
.AopConfigException: Could not generate CGLIB subclass of class [class java.util.concurrent.Executors$DelegatedScheduledExecutorService]: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: No visible constructors in class java.util.concurrent.Executors$DelegatedScheduledExecutorService
我知道,ScheduledExecutorService 没有构造函数是根本原因。但是我需要配置方面的切入点以排除 FinalType 类。像这样:
@Before("!within(is(FinalType)) && execution(* your_method_name(..)) ")
但是,正如我提到的,aspectJ 版本 1.8.10 无法识别 is(..) 语法。(Intellij IDEA 警告 Cannot resolve symbol 'is')。应用程序启动时没有 AOP 问题,但失败了
java.lang.IllegalArgumentException: No visible constructors in class java.util.concurrent.Executors$DelegatedScheduledExecutorService
我做错了什么?aspectj > 1.8.4 有什么变化吗?(是(..)语法)
一只甜甜圈
相关分类