zoukankan      html  css  js  c++  java
  • 使用spring的@Async异步执行方法

    应用场景:

    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("我已经执行了!");
    }
  • 相关阅读:
    redisTemplate
    HttpURLConnection下载文件流
    Quartz集成springMVC 的方案二(持久化任务、集群和分布式)
    https请求
    将一个 JavaBean 对象转化为一个 Map
    Redis实现简单消息队列
    Spring Boot RestTemplate文件上传
    获取java栈异常
    获取 *.properties配置文件内容
    java格式化json串
  • 原文地址:https://www.cnblogs.com/eryun/p/10466344.html
Copyright © 2011-2022 走看看