在项目中,时常会有异步调用的需求
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修饰的方法和调用此方法的其他方法在同一个类中,不会生效
具体参照:https://blog.csdn.net/ClementAD/article/details/47339519