Spring Boot异步任务

2022-09-16 09:27:33

1、使用的注解:

        @EnableAsync:启动类上开启基于注解的异步任务

@Async:标识的方法会异步执行

2、demo

①api

import com.mengxuegu.springboot.service.AsyncService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;


@RestController
public class AsyncController {
    @Autowired
    private AsyncService asyncService;

    @GetMapping("/hello")
    public String hello() {
        asyncService.batchAdd();
        return "success";
    }
}

②业务层

import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;

/**
 * 异步处理批量操作
 */
@Service
public class AsyncService {
    @Async
    public void batchAdd() {
        try {
            //模拟新增数据
            Thread.sleep(5*1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("批量新增数据完成");
    }
}

③引导类

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableAsync;

// 开启基于注解版的异步处理

@EnableAsync
@SpringBootApplication
public class SpringBoot11TaskApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringBoot11TaskApplication.class, args);
    }
}
  • 作者:qingcyb
  • 原文链接:https://blog.csdn.net/qingcyb/article/details/123283522
    更新时间:2022-09-16 09:27:33