java - 仅加热 URI,不等待 Spring Rest 中的响应

标签 java spring spring-boot spring-restcontroller

假设我使用 POSTMAN 单击 URI localhost:8080/admin/helloHello 类 POST JSON 对象,并有一个类似的 Controller ,

@RequestMapping(value = "/hello", method = RequestMethod.POST)
public ResponseEntity<Hello> helloHome(@RequestBody Hello obj){
//here it goes to service class and doing processes...
return new ResponseEntity<Hello>(obj, HttpStatus.OK);
}

我只希望 URI 命中 Controller 而不是等待响应(因为处理所有服务类进程需要 10 秒,但我想立即返回而不响应)。

我该如何实现它?

最佳答案

将所有处理逻辑移至服务类(如果还没有),并使用 @Async 注释您的服务类方法。这将使方法调用在单独的线程中执行,并且 Controller 方法不会等待服务类方法完成。

@RequestMapping(value = "/hello", method = RequestMethod.POST)
public ResponseEntity<Hello> helloHome(@RequestBody Hello obj){
  helloHomeService.processRequest(obj);
  return new ResponseEntity<Hello>(obj, HttpStatus.OK);
}

public Class HomeService{
@Async
public void processRequest(Hello obj){
  //processing logic
}

}

关于java - 仅加热 URI,不等待 Spring Rest 中的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53724407/

相关文章:

java - java中可以通过反射设置字段的 transient 属性/标志吗?

java - 插入 XML 列时如何解决 "Illegal Conversion"异常?

java - 如何在java中分割字符串后将其部分存储在字典中

java - java spring : @Transactional(propagation = Propagation. 中的并发需要,隔离 = Isolation.SERIALIZABLE) 不工作

java - Thymeleaf Spring 配置

java - 错误 : 'ContentNegotiatingViewResolver' of Spring 3. 0.3 MVC Portlet+JSON

java - 尝试在 xhtml 文件上使用 Sax 解析器时出错

gradle - Spring Boot Fat jar 的 Java 代码签名

java - 是否可以在没有刷新 token 的情况下检查 JWT 有效性?

java - jar 外部的 Spring Boot 外部属性