springboot之@Async实现异步

听说springboot有个注解@Async能够实现异步调用,而后我来用用看!spring

增长一个maven新模块:springboot

增长以下依赖,不增长配置:并发

而后咱们写一个异步调用的服务:异步

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

而后咱们写一个测试用例测试

日志输出:.net

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

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

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

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

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

下节再续!

有什么讨论的内容,能够加我公众号:

相关文章
相关标签/搜索