文档章节

使用Spring @Async异步执行方法的笔记

abcijkxyz
 abcijkxyz
发布于 2016/07/08 16:31
字数 228
阅读 5
收藏 0

测试代码:

 

Java代码   收藏代码
  1. <p>@RunWith(SpringJUnit4ClassRunner.class)</p>@ContextConfiguration(locations = { "/spring/*.xml" })  
  2. public class JobUtilsTest{  
  3.       
  4.     @Autowired  
  5.     private DaoService service;  
  6.   
  7.     @Test   
  8.     public void testAsync() throws Exception {  
  9.         System.out.println("start" );  
  10.         service.update(); // ★ 假设这个方法会比较耗时,需要异步执行  
  11.         System.out.println("end");  
  12.           
  13.           
  14.         Thread.sleep(3000); // 因为junit结束会结束jvm,所以让它等会异步线程  
  15.     }  
  16. }  

 

 DaoService代码:

Java代码   收藏代码
  1. @Service   
  2. public class DaoService {  
  3.     @Async  
  4.     public void update() {  
  5.         try {  
  6.             Thread.sleep(2000);  
  7.             // do something  
  8.         } catch (InterruptedException e) {  
  9.             e.printStackTrace();  
  10.         }  
  11.         System.out.println("operation complete.");  
  12.     }  
  13. }  

 

applicationContext.xml

 

 

Xml代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"  
  4.     xmlns:context="http://www.springframework.org/schema/context"  
  5.     xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:task="http://www.springframework.org/schema/task"  
  6.     xsi:schemaLocation="http://www.springframework.org/schema/beans   
  7.     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
  8.     http://www.springframework.org/schema/context   
  9.     http://www.springframework.org/schema/context/spring-context-3.0.xsd  
  10.     http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd">  
  11.   
  12.     <context:component-scan base-package="com.chinacache" />  
  13.    
  14.     <task:annotation-driven />  
  15.       
  16. </beans>  

 

输出结果:

 

start
end
operation complete.

 

可以看出,输出不是顺序执行,说明异步调用成功了。

本文转载自:http://blog.csdn.net/yuwenruli/article/details/8514393

共有 人打赏支持
abcijkxyz
粉丝 63
博文 6196
码字总数 1876
作品 0
深圳
项目经理
异步任务神器 Celery 简明笔记

Celery 在程序的运行过程中,我们经常会碰到一些耗时耗资源的操作,为了避免它们阻塞主程序的运行,我们经常会采用多线程或异步任务。比如,在 Web 开发中,对新用户的注册,我们通常会给他发...

funhacks
2017/11/29
0
0
MongoDB学习笔记~为IMongoRepository接口添加了增删改方法,针对官方驱动

上一讲说了MongoDB官方驱动的查询功能,这回说一下官方驱动的增删改功能,驱动在升级为2.0后,相应的insert,update和delete都只有了异步版本(或者叫并行版本),这当然也是跟着.net走的正方...

mcy247
2017/12/06
0
0
AsyncTask 学习笔记

Class Overview AsyncTask enables proper and easy use of the UI thread. This class allows to perform background operations and publish results on the UI thread without having to ......

Angels_安杰
2016/02/23
24
0
JSON,异步加载(学习笔记)

JSON是一种传输数据的格式(以对象为样板,本质上就是对象,但用途有区别,对象就是本地用的,json是用来数据传输的,前端与后端的数据通信) JSON是静态类(不需要构造),类似于Math,内部...

Mrs_CoCo
04/23
0
0
阅读《LEARNING HARD C#学习笔记》知识点总结与摘要五

本篇文章主要是总结异步编程的知识点,也是本系列的最后一篇文章,每一个知识点我都有写出示例代码,方便大家理解,若发现有误或不足之处还请指出,由于书中作者对此知识点讲解过于简单,所以...

技术小牛人
2017/11/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Shell编程(expect同步文件、指定host和同步文件、构建文件分发系统、批量执行命令)

expect脚本同步文件 需求:自动同步文件 实验准备: A机器:192.168.248.130 B机器:192.168.248.129 实现: 1.A机器编写4.expect脚本文件,内容如下所示: #!/usr/bin/expectset passwd "...

蛋黄_Yolks
17分钟前
0
0
ppwjs之bootstrap颜色:背景颜色

<!DOCTYPT html><html><head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><title>ppwjs欢迎您</title><link rel="icon" href="/favicon.ico" ......

ppwjs
17分钟前
0
0
Ubuntu与 Fedora之对比

大家好。今天我将重点介绍两个流行的Linux发行版之间的一些特性和差异; Ubuntu 18.04和Fedora 28。它们都有自己的包管理; Ubuntu使用DEB,而Fedora使用RPM,但它们都具有相同的桌面环境(GNO...

linuxprobe16
21分钟前
0
0
线性代数入门

线性代数的概念对于理解机器学习背后的原理非常重要,尤其是在深度学习领域中。它可以帮助我们更好地理解算法内部到底是怎么运行的,借此,我们就能够更好的做出决策。所以,如果你真的希望了...

牛奋Debug
昨天
2
0
开发5分钟,调试2小时 - 该如何debug?

几年来我在答疑群、论坛、公众号、知乎回答的各种问题,没有一万也有八千。其中有三分之二以上都是在帮人看报错,帮人 debug(调试代码)。 可以说,会不会 debug,有没有 debug 的意识,懂不...

crossin
昨天
3
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部