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); } }