当前位置 : 主页 > 编程语言 > java >

Java web spring异步方法实现步骤解析

来源:互联网 收集:自由互联 发布时间:2021-04-30
在项目中,时常会有异步调用的需求 web.xml配置 servlet descriptionspring mvc servlet/description servlet-namespringMvc/servlet-name servlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-class init-param desc

在项目中,时常会有异步调用的需求

web.xml配置

<servlet>
  <description>spring mvc servlet</description>
  <servlet-name>springMvc</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <init-param>
   <description>spring mvc 配置文件</description>
   <param-name>contextConfigLocation</param-name>
   <param-value>classpath:spring-mvc.xml</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
  <async-supported>true</async-supported>
 </servlet>
 <servlet-mapping>
  <servlet-name>springMvc</servlet-name>
  <url-pattern>/</url-pattern>
 </servlet-mapping>

添加:<async-supported>true</async-supported>

spring xml添加配置:

  <!-- 支持异步方法执行 -->
  <task:executor id="myExecutor" pool-size="10" />
  <task:annotation-driven executor="myExecutor"/>

然后demo:

@Service
@EnableAsync
public class DevicesEditLogService {
  @Async
  public void recordEditLog(Map<String, Object> param) {
  }
}

类上添加@EnableAsync, 方法上添加@Async,

添加@Service, 其他类可以注入这个实例,并调用成员方法

注:有了解到,如果@Async修饰的方法和调用此方法的其他方法在同一个类中,不会生效

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

网友评论