Java 什么';在控制器返回中使用return可调用结果是什么?

Java 什么';在控制器返回中使用return可调用结果是什么?,java,spring-mvc,Java,Spring Mvc,由于SpringMVC,有人喜欢使用Callable来构建控制器的返回值 例如: 真的吗?不,基本上你错了 有一个用于返回可调用的的用例。假设您将从控制器调用的服务运行很长时间。在此期间,在传统的每个请求线程模型中,用于服务器连接的tomcat线程将被卡住 因此,从servlet 3.0开始,有一种异步运行的方法,这是在spring MVC中实现的方法: 事实上,从控制器返回callable方法会指示Spring MVC在不同的线程中调用在callable中定义的任务 您可能会发现与您的问题相关

由于SpringMVC,有人喜欢使用Callable来构建控制器的返回值 例如:


真的吗?

不,基本上你错了

有一个用于返回可调用的
的用例。假设您将从控制器调用的服务运行很长时间。在此期间,在传统的每个请求线程模型中,用于服务器连接的tomcat线程将被卡住

因此,从servlet 3.0开始,有一种异步运行的方法,这是在spring MVC中实现的方法: 事实上,从控制器返回callable方法会指示Spring MVC在不同的线程中调用在callable中定义的任务


您可能会发现与您的问题相关

非常感谢,我想我以前对Servlet线程模型不太了解。
    @RestController
    public class TController{
         @GetMappint("helloWorld")
         public Callable<String> demo(){
             return new Callable<String>() {
                 @Override
                 public String call() throws Exception {
                     //do sth.
                    return "hello world";
                 }
             };
         }    
    }
 @RestController
    public class TController{
         @GetMappint("helloWorld")
         public String demo(){
             //do sth.
            return "hello world";
         }    
    }