创建和管理自己的ExecutorService
与使用Spring @Bean
方法创建Executor
方法的@Async相比,是否存在缺陷?
对我来说,手动操作似乎更简单。我只是创建了我的ExecutorService
和一个使用它来安排任务/ Callable
的方法。
我需要Spring Boot:
@Async
@Configuration
,@EnableAsync
@Bean
以创建Executor
手动执行是否存在潜在问题? Spring会杀掉线程吗?使用Spring异步模式还有其他一些好处吗?
答案 0 :(得分:1)
看起来大多数挂机都是适用于大量Spring IoC配置的项目。 @Async
是Spring Framework而不是Spring Boot的一部分。
你可以像你提到的那样自己处理执行程序,但是如果你已经开始使用Spring Framework和Spring Boot,我会质疑为什么这么麻烦。
Spring会在后台处理一些项目,例如关闭ApplicationContext时执行程序的shutdown
。
如果您选择使用它,还可以使用异常处理中的一些很好的功能,以及对Spring Framework的调度方面的补充。
必须创建@Bean
,@Configuration
是Spring生活中的一个事实,在我看来并不是真正的退缩,这只是框架生活的一个事实。
最后,@Async
抽象了实现Runnable
的需要,或@Callable
有效地允许更快地实现异步功能。