开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 3 天,点击查看活动详情
springboot中使用异步Asyc注解示例
- 步骤1
创建一个异步执行的类并开启spring boot的@EnableAsync注解:
@EnableAsync
public class AsyncTest {
}
- 步骤2 在异步执行类中创建异步执行方法,使用Asyc异步注解:
/**
* 异步保存数据
* @param data
* @throws Exception
*/
@Async
public void saveDataBySync(String data) throws Exception {
// 使用异常捕捉 防止影响其他业务
try {
System.out.println(data);
// 保存进数据库
} catch (Exception e) {
e.printStackTrace();
}
}
- 步骤3 在主业务中引入异步执行类并调用异步处理方法即可:
@Autowired
private AsyncTest asyncTest;
// 测试async异步调用 @Test public void asyncTest() throws Exception { // 主业务 String data = "测试"; // 异步调用保存数据 asyncTest.saveDataBySync(data);
// 主业务继续执行
System.out.println(data + "测试");
// 注 使用单元测试 需要使用休眠 因为如果主线程如果执行完了,整个单元测试就执行完了,有可能异步调用还没执行完成就被强制结束了,看不到效果
Thread.sleep(1000); // 单元测试才要加这一行 正式业务不用
}
温馨提示: 建议异步处理,统一创建一个独立的异步执行类,然后在主业务中引入调用,这样比较方便,如果在主业务中直接使用异步执行注解及异步处理,比较麻烦及繁杂,不建议使用。
开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 3 天,点击查看活动详情