使用spring的@Async異步執行方法

應用場景:spring

一、某些耗時較長的而用戶不須要等待該方法的處理結果spring-mvc

二、某些耗時較長的方法,後面的程序不須要用到這個方法的處理結果時mvc

 

在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 /> 

使用方法spa

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();
        }
    }
}

調用方法code

public static void main(String[] args) {
    Test.testAsyncMethod();
    System.out.println("我已經執行了!");
}
相關文章
相關標籤/搜索