Spring开启@Async异步方法(javaconfig配置)

在Spring中,基于@Async标注的方法,称之为异步方法;这些方法将在执行的时候,将会在独立的线程中被执行,调用者无需等待它的完成,即可继续其他的操作。

应用场景:

  1. 某些耗时较长的而用户不需要等待该方法的处理结果
  2. 某些耗时较长的方法,后面的程序不需要用到这个方法的处理结果时

代码

创建AsyncTask

/**
 * 异步任务
 *
 * @author Peng
 */
public class AsyncTask {
    @Async
    public void doAsyncTask() throws InterruptedException {
        // 假设执行一个很耗时的任务
        Thread.sleep(10 * 1000);
        System.out.println("执行完成,我执行了10秒");
    }
}

创建spring配置AppConfig

/**
 * spring 配置
 *
 * @author Peng
 */
@Configuration
@EnableAsync
public class AppConfig {
    /**
     * 声明异步任务bean
     *
     * @return
     */
    @Bean
    public AsyncTask asyncTask() {
        return new AsyncTask();
    }
}

测试

/**
 * 异步测试
 *
 * @author Peng
 */
public class AppTest {
    public static void main(String[] args) throws InterruptedException {
        ApplicationContext ctx = new AnnotationConfigApplicationContext(AppConfig.class);
        AsyncTask task = ctx.getBean(AsyncTask.class);
        task.doAsyncTask();
        System.out.println("异步任务调用成功,返回客户端执行成功,异步任务继续执行");
    }
}

执行结果

异步任务调用成功,返回客户端执行成功,异步任务继续执行
执行完成,我执行了10

从结果可以看出,异步任务测试成功

你可能感兴趣的:(spring)