spring 开启异步支持

本文介绍如何在Spring框架4.3.10版本中使用Java配置和XML配置方式来开启异步支持及定时任务。包括配置示例、线程池设置以及事件中异步方法的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文中使用的spring版本是 4.3.10 release版,为此时最新发布版.

本文中的内容在spring文档的34章4节,地址为 http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#scheduling-annotation-support-exception.

##使用java配置开启异步支持

@Configuration
@EnableAsync
@EnableScheduling
public class AppConfig {
}
  • @Configuration 标志这是一个spring的配置类

  • @EnableAsync 标志异步支持开始

  • @EnableScheduling 标志着定时任务开始

##使用xml开始异步支持

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:task="http://www.springframework.org/schema/task"
       xsi:schemaLocation="
          http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
          http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd">
<task:annotation-driven executor="myExecutor" scheduler="myScheduler"/>
<task:executor id="myExecutor" pool-size="5"/>
<task:scheduler id="myScheduler" pool-size="10"/>
</beans>

  • 设置了task的执行器,id为'myExecutor',线程池容量为5;

  • 设置了定时任务的执行器,id为'myScheduler',线程池容量为10;

在事件中使用异步方法


    @EventListener
    @Async
    public void handleEvent2(EventEvent event) {

        System.out.println("异步输出问题!!");
    }
  • @EventListener,标志这是一个事件监听器

  • @Async 标志这是一个异步方法,该方法将作为守护进程运行.

一般异步方法的返回值应该是java.util.concurrent.Future类型或 Spring 4.2新增的 org.springframework.util.concurrent.ListenableFuture 还有JDK 8的 java.util.concurrent.CompletableFuture类型

目前spring的事件异步处理方法不支持任何返回值.

转载于:https://my.oschina.net/u/1590027/blog/1511296

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值