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