SpringBoot使用@Async异步调用方法

有时间一些比较耗时的方法需要使用异步调用,之前会自己维护一个线程池,然后异步调用,但是在Spring环境下可以一个@Async轻松搞定。

SpringBoot要使用@Async需要以下两个步骤:

1.使用@EnableAsync开启异步;

2.定义Spring组件,使用@Component和@Async;

示例:

使用@EnableAsync开启异步:

定义Spring组件,使用@Component和@Async:

测试用的Controller:

启动项目,执行结果:

异步方法执行成功,可以看到有个日志打印出来了,这个是Spring打印的日志,因为我们没有指定异步执行的executor,在第一次执行的时候会找不到executor,会返回null,由Spring默认的executor去执行,这个以后有时间再记录。

其实异步注解代理的方法可以有一个返回值Future,可以用isCancelled判断异步任务是否取消,isDone判断任务是否执行结束,get获取返回结果。

你可能感兴趣的:(springboot自学系列,SpringBoot,使用Async异步调用方法)