Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我们可以使用Spring框架进行并行服务调用吗_Spring_Spring Mvc - Fatal编程技术网

我们可以使用Spring框架进行并行服务调用吗

我们可以使用Spring框架进行并行服务调用吗,spring,spring-mvc,Spring,Spring Mvc,我有一个网站,有主页、搜索文本、按钮和5-6个选项卡。根据搜索文本,将有独立的服务调用API调用到选项卡的后端。每个选项卡都有不同的数据。单击search之后,我计划获取一个选项卡的数据并将其加载到UI中,然后让其他选项卡的数据在后台加载 我计划使用SpringMVC来完成这项任务,但我不确定Spring是否支持这种并行服务调用 还有其他框架可以做到这一点吗 任何指针都会有帮助。Spring MVC可以做到这一点。因为它可以处理并行请求,所以不会注意它们是否来自同一个客户机 问题是让客户端为每个

我有一个网站,有主页、搜索文本、按钮和5-6个选项卡。根据搜索文本,将有独立的服务调用API调用到选项卡的后端。每个选项卡都有不同的数据。单击search之后,我计划获取一个选项卡的数据并将其加载到UI中,然后让其他选项卡的数据在后台加载

我计划使用SpringMVC来完成这项任务,但我不确定Spring是否支持这种并行服务调用

还有其他框架可以做到这一点吗


任何指针都会有帮助。

Spring MVC可以做到这一点。因为它可以处理并行请求,所以不会注意它们是否来自同一个客户机

问题是让客户端为每个选项卡发送一个并行请求

独立服务调用对后端的API调用

我想,你说的是Ajax请求HTTP

所有JavaEEWeb框架,当然还有SpringFrameworkMVC都是基于使用情况的。你也可以阅读

重要的是,每个servlet请求都在单独的线程中运行。 线程创建由servlet容器tomcat、GlassFish、Jetty等执行,因此不需要手动执行

所以答案肯定是肯定的

关于其他框架,请参阅

UPD。 关于客户。根据定义,Ajax请求是异步的,因此很容易实现并行请求

关于如何在客户端Jquery上进行并行调用的快速小示例:

<script type="text/javascript">
$( document ).ready(function() {
    $("#searchButton").click(function(){
        var pattern = $("#searchText").val();
        var processingMap = [
            {tabid:"tab1", url:"./first-api-call"},
            {tabid:"tab2", url:"./second-api-call"},
            {tabid:"tab3", url:"./third-api-call"},
            {tabid:"tab4", url:"./fourth-api-call"},
            {tabid:"tab5", url:"./fifth-api-call"}
        ];

        $(processingMap).each(function(index, element){
            $.ajax(element.url,{
                'type':'get',
                'data':{'pattern':pattern},
                'dataType':'text',
                'success':function(data, textStatus, jqXHR){
                    setTabContent(element.tabid,data);
                }
            });
        });
    });

    function setTabContent(tabid, content){
        $('#'+tabid).text(content);
    }

}); 
</script>

<input type="text" value="" id="searchText">
<input type="button" value="Search" id="searchButton">

<div id="tab1">tab1</div>
<div id="tab2">tab2</div>
<div id="tab3">tab3</div>
<div id="tab4">tab4</div>
<div id="tab5">tab5</div>

那么,除了为每个请求手动创建线程外,客户端是否还有其他方法发送此并行请求?请参阅:-您不能有两个真正的线程,但您可以发送一个请求而不等待结果,然后立即发送第二个请求。是,每个servlet请求都在单独的线程上处理,但是如何为每个调用创建并行请求呢?例如:点击按钮后输入搜索文本,我有一个数据选项卡,其中有5个对后端的API调用,我想并行执行这些调用,并在填充其余选项卡的后端数据时向用户显示此选项卡。更新了我的答案,请查看。感谢提供描述性答案。还有一个问题/疑问:如果tab 1的呼叫处理完成,它将显示该选项卡的内容,而无需等待其他选项卡,对吗?在我的情况下,它似乎应该可以工作。谢谢你的帮助。