springboot使用异步Asyc注解

64 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 3 天,点击查看活动详情

springboot中使用异步Asyc注解示例

  1. 步骤1

创建一个异步执行的类并开启spring boot的@EnableAsync注解:

@EnableAsync
public class AsyncTest {
}
  1. 步骤2 在异步执行类中创建异步执行方法,使用Asyc异步注解:
/**
 * 异步保存数据
 * @param data
 * @throws Exception
 */
@Async
public void saveDataBySync(String data) throws Exception {
    // 使用异常捕捉 防止影响其他业务
    try {
        System.out.println(data);
        // 保存进数据库
        
    } catch (Exception e) {
        e.printStackTrace();
    }
}
  1. 步骤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 天,点击查看活动详情