gpt4 book ai didi

java - Spring Boot ASync + AutoWired Executor 与手动 Executor + Future/Callable?

转载 作者:行者123 更新时间:2023-11-30 10:26:55 27 4
gpt4 key购买 nike

创建和管理您自己的 ExecutorService 与使用 Spring Boot 的 @Async 方法和 @Bean 方法创建 Executor< 相比有缺点吗?

对我来说,手动操作似乎简单得多。我只是创建了我的 ExecutorService 和一个使用它来安排任务/Callable 的方法。

我需要 Spring Boot:

  • @Async装饰方法
  • @Configuration@EnableAsync装饰我的配置类>
  • 添加一个@Bean来创建一个Executor

手动操作是否存在潜在问题? Spring 会终止线程吗?使用 Spring 异步模式还有其他一些好处吗?

最佳答案

看起来你的大部分挂断都是适用于许多 Spring IoC 配置的项目。 @Async 是 Spring Framework 而非 Spring Boot 的一部分。

您可以像您提到的那样自己处理执行程序,但我想问的是,如果您已经开始使用 Spring Framework 和 Spring Boot,为什么还要麻烦。

Spring 确实在后台处理一些项目本身,例如关闭 ApplicationContext 时执行器的 shutdown

如果您选择使用它,还有一些很好的异常处理可以与 Spring Framework 的调度方面一起使用。

https://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html#scheduling-annotation-support-qualification

必须创建 @Bean@Configuration 是 Spring 的一个现实,在我看来,这并不是一个真正的缺点,它只是一个现实框架。

最后,@Async 抽象了实现Runnable 的需要,或者 @Callable 有效地允许更快地实现异步功能。

关于java - Spring Boot ASync + AutoWired Executor 与手动 Executor + Future/Callable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45513756/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com