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