springboot之@Async实现异步

据说springboot有个注解@Async可以实现异步调用,然后我来用用看!

增加一个maven新模块:

增加如下依赖,不增加配置:

然后我们写一个异步调用的服务:

这里需要实现异步的功能,还需要在Application加上注解@EnableAsync,类似于Spring的<task:*> XML命名空间中的功能。

然后我们写一个测试用例

日志输出:

从上面的日志中,我们可以看到调用是异步执行的,就是使用一下这个功能,实际上使用也不用这么复杂吧,使用的Future<String>,我们在新版本的JDK中,还可以使用其他的方式!

我们可以看到在EnableAsync注解中有@Import AsyncConfigurationSelector.class(用来导入一个或多个class,这些类会注入到spring容器中,或者配置类,配置类里面定义的bean都会被spring容器托管)。

@EnableAsync注释启动了Spring在后台线程池中运行@Async方法的能力。该类还自定义使用的Executor。在我们的示例中,我们希望将并发线程数限制为2并将队列大小限制为500.您可以调整更多内容。默认情况下,使用SimpleAsyncTaskExecutor。

 文档里写了@Async有两个使用的限制

  • 它必须仅适用于public方法
  • 在同一个类中调用异步方法将无法正常工作(self-invocation)

下节再续!

有什么讨论的内容,可以加我公众号:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值