應用場景: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("我已經執行了!"); }