[英]Async method in abstract 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
为什么似乎不能在抽象类中工作的任何建议吗?
我正在使用SpringBoot 2.1.3.RELEASE
都是因为someAsyncTask
是final
。
这是最终版本,防止这种方法从beeing @Override
。
似乎不可能这样做并保留@Async
。
感谢@Deadpool的帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.