在项目中,时常会有异步调用的需求
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修饰的方法和调用此方法的其他方法在同一个类中,不会生效
网友评论