抽象的异步方法 class

Async method in abstract class

我想在抽象 class 中有一个 @Async 方法,但它似乎不起作用(如果我放一些日志,它是同一个线程)。

public abstract class MyAbstractClass {
    ...

    @Async
    public final void someAsyncTask() {
        ...
    }

    public abstract void doMyStuff();
}
@Service
public class MyClass extends MyAbstractClass {
    ...

    @Override
    public void doMyStuff() {
        ...
    }
}
@Component
public class Initializer {

    @Autowired
    private MyClass myClass;

    @PostConstruct
    public void init() {
        // This call is NOT async
        myClass.someAsyncTask();
    }
}
@Configuration
@EnableAsync
public class SpringAsyncConfig implements AsyncConfigurer {

    @Override
    public Executor getAsyncExecutor() {
        ...
        return threadPoolTaskExecutor;
    }
}

如果 @Async 方法直接在 MyClass 中(它不再扩展 MyAbstractClass,因为它现在没用了):它有效!

关于为什么 @Async 似乎在抽象 class 中不起作用的任何建议?

我正在使用 SpringBoot 2.1。3.RELEASE

都是因为someAsyncTaskfinal

最终阻止此方法运行 @Override

似乎不​​可能这样做并保留 @Async

感谢@Deadpool 的帮助!