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

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

2014-10-28 15:26 369 查看
测试代码:



Java代码



<p>@RunWith(SpringJUnit4ClassRunner.class)</p>@ContextConfiguration(locations = { "/spring/*.xml" })

public class JobUtilsTest{



@Autowired

private DaoService service;



@Test

public void testAsync() throws Exception {

System.out.println("start" );

service.update(); // ★ 假设这个方法会比较耗时,需要异步执行

System.out.println("end");





Thread.sleep(3000); // 因为junit结束会结束jvm,所以让它等会异步线程

}

}



DaoService代码:

Java代码



@Service

public class DaoService {

@Async

public void update() {

try {

Thread.sleep(2000);

// do something

} catch (InterruptedException e) {

e.printStackTrace();

}

System.out.println("operation complete.");

}

}



applicationContext.xml





Xml代码



<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:task="http://www.springframework.org/schema/task"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-3.0.xsd

http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd">



<context:component-scan base-package="com.chinacache" />



<task:annotation-driven />



</beans>



输出结果:



start

end

operation complete.



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

原文地址:http://blog.csdn.net/yuwenruli/article/details/8514393
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: