使用spring的@Async异步执行方法

来源:互联网 发布:ubuntu svn 库建立 编辑:程序博客网 时间:2024/05/17 15:36

应用场景:

1、某些耗时较长的而用户不需要等待该方法的处理结果

2、某些耗时较长的方法,后面的程序不需要用到这个方法的处理结果时

 

在spring的配置文件中加入对异步执行的支持

复制代码
<beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xmlns:tx="http://www.springframework.org/schema/tx"    xmlns:context="http://www.springframework.org/schema/context"    xmlns:aop="http://www.springframework.org/schema/aop"     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-4.0.xsd        http://www.springframework.org/schema/tx        http://www.springframework.org/schema/tx/spring-tx-4.0.xsd       http://www.springframework.org/schema/context       http://www.springframework.org/schema/context/spring-context-4.0.xsd       http://www.springframework.org/schema/mvc       http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd    http://www.springframework.org/schema/task    http://www.springframework.org/schema/task/spring-task-4.0.xsd">    <context:annotation-config />    <!--扫描注解 -->    <context:component-scan base-package="com.tf" />    <!-- 支持异步方法执行 -->    <task:annotation-driven /> 
复制代码

使用方法

复制代码
import org.springframework.scheduling.annotation.Async;public class Test {        @Async    public static void testAsyncMethod(){        try {            //让程序暂停100秒,相当于执行一个很耗时的任务            Thread.sleep(100000);        } catch (InterruptedException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }}
复制代码

调用方法

public static void main(String[] args) {    Test.testAsyncMethod();    System.out.println("我已经执行了!");}
0 0
原创粉丝点击