2. SpringBoot中的异步方法支持
======================
其实, 在SpringBoot中并不需要我们自己去创建维护线程或者线程池来异步的执行方法, SpringBoot已经提供了异步方法支持注解.
@EnableAsync // 使用异步方法时需要提前开启(在启动类上或配置类上)
@Async // 被async注解修饰的方法由SpringBoot默认线程池(SimpleAsyncTaskExecutor)执行
比如使用Spring的异步支持实现文章查询并增加阅读量
Service层:
@Service
public class ArticleServiceImpl {
// 查询文章
public String selectArticle() {
// TODO 模拟文章查询操作
System.out.println(“查询任务线程”+Thread.currentThread().getName());
return “文章详情”;
}
// 文章阅读量+1
@Async
public void updateReadCount() {
// TODO 模拟耗时操作
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(“更新任务线程”+Thread.currentThread().getName());
}
}
Controller层:
@RestController
public class AsyncTestController {
@Autowired
private ArticleServiceImpl articleService;
/**
- 模拟获取文章后阅读量+1
*/
@PostMapping(“/article”)
public String getArticle() {