您的位置:首页 > 编程语言 > Java开发

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

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

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

代码

创建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秒


从结果可以看出,异步任务测试成功
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: