1.在启动类上添加@EnabnleAsync注解开启对异步任务的支持
//开启对异步任务的支持 @EnableAsync @SpringBootApplication public class Learn20221218Application { public static void main(String[] args) { SpringApplication.run(Learn20221218Application.class, args); } }
2.@Async 注解
可以使用在类上与方法上,使用在类上 这个类里面的全部方法都是异步的,使用在方法上 这个方法就是异步的
//必须注入到容器当中 @Service public class AsyncService { @Async public void async1(){ } @Async public void async2(){ } }
3.异步执行完毕与如何知道异步全部执行完毕
异步代码
@Service public class AsyncService { @Async public Future<String> async1(){ //<String> 可以是其它参数 return new AsyncResult<String>("Async1 执行完毕返回参数 param"); } @Async public Future<String> async2(){ return new AsyncResult<String>("Async2 执行完毕返回参数 param"); } }
业务逻辑代码
@Autowired AsyncService asyncService; public void index() throws InterruptedException { Future<String> stringFuture1 = asyncService.async1(); Future<String> stringFuture2 = asyncService.async2(); while(true){ if(stringFuture1.isDone() && stringFuture1.isDone()){ System.out.println("所有异步任务都执行完毕了"); break; } Thread.sleep(1000); } }
标签:EnableAsync,异步,SpringBoot,void,class,Future,Async,public From: https://www.cnblogs.com/ErenYeager/p/17014928.html