首页 > 其他分享 >SpringBoot - 异步任务 @EnableAsync,@Async

SpringBoot - 异步任务 @EnableAsync,@Async

时间:2022-12-30 15:11:07浏览次数:45  
标签:EnableAsync 异步 SpringBoot void class Future Async public

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

相关文章

  • springboot HandlerIntercept
    1、新建上下文类工具类publicclassContextHolder{privatestaticfinalInheritableThreadLocal<RequestContext>REQUEST_CONTEXT_INHERITABLE_THREAD_LOCAL=......
  • 【MybatisPlus】SpringBoot快速集成MybatisPlus
    目录一、引入依赖二、逆向生成工具类三、其他配置 一、引入依赖<!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-con......
  • 手把手的SpringBoot教程,SpringBoot创建web项目(三)
    这节课,我们来学习一下SpringBoot的环境配置,在SpringBoot中,所有的配置都写在application.properties中:我们启动项目,默认端口是8080,我们现在给他配置一个8088:server.port=808......
  • SpringBoot(九):整合Mybatis
    一、导入依赖<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId>......
  • 0016 常见错误com.example.adminspringboot.mapper.UserMapper.update
    错误截图  在使用mybatis中容易出现解决方法:在配置文件中加上路径书写:mybatis:mapper-locations:classpath:mapper/*.xml#扫描所有mapper下的xml文件 ......
  • springboot项目打包后上传服务器失败,但是在本地可以运行。
    近期开发一个项目,在本地运行无问题,发到服务器上无法访问,最后排查发现,springboot使用的是内嵌的tomcat,而项目要使用外部的tomcat。1.在pom文件里面去掉打包不参与的。<!--......
  • springboot简单了解
    先创建一下springboot工程,可以在idea里面创建,也可以在spring.io的官网里面创建,因为idea很卡,所以我一般用官网里面创建。  勾选起步依赖: 然后在程序中,对于控制器......
  • SpringBoot - WebMvcConfigurer 配置类
    WebMvcConfigurer:1.publicvoidconfigurePathMatch(PathMatchConfigurerconfigurer)路径匹配规则一般不用修改2.publicvoidconfigureContentNegotiation(ContentNe......
  • SpringBoot - 内容协商机制
    1.内容协商机制根据客户端接收能力不同,SpringBoot返回不同媒体类型的数据比如:客户端Http请求Accept:application/xml则返回xml数据,客户端Http请求Accept:a......
  • SpringBoot 的属性配置文件
    0、概述本文内容会解答下面几个问题:1、SpringBoot默认配置文件的名称是什么?配置文件默认存放位置是什么?2、如何指定配置文件名称?如何指定配置文件存放位置?3、如何使用pro......