Análisis del paso de implementación del método asincrónico Java Web Spring

En el proyecto, a menudo existe una demanda de llamadas asincrónicas.

configuración 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>

Agregar: verdadero

Spring xml agregar configuración:

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

Después de esa demostración:

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

Agregue @EnableAsync en la clase, @Async en el método,

Agregue @Service, otras clases pueden inyectar esta instancia y llamar a métodos de miembros

Nota: he aprendido que si el método modificado @Async y otros métodos que llaman a este método están en la misma clase, no surtirá efecto

Algunas preguntas de entrevistas de alta frecuencia recopiladas en el último 2020 (todas organizadas en documentos), hay muchos productos secos, incluidos mysql, netty, spring, thread, spring cloud, jvm, código fuente, algoritmo y otras explicaciones detalladas, así como planes de aprendizaje detallados, entrevistas Clasificación de preguntas, etc. Para aquellos que necesitan obtener estos contenidos, agregue Q como: 11604713672

Supongo que te gusta

Origin blog.csdn.net/weixin_51495453/article/details/113341078
Recomendado
Clasificación