我们可以使用Spring框架进行并行Service调用

时间:2014-06-11 03:14:20

标签: spring spring-mvc

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

我打算使用Spring MVC来完成这项任务,但我不确定spring是否支持这种并行服务调用。

是否还有其他框架可以做到这一点?

任何指针都会有所帮助。

2 个答案:

答案 0 :(得分:0)

Spring MVC可以做到这一点。因为它可以处理并行请求(它不会照顾它们来自同一个客户端)。

"问题"是让客户端发送此并行请求(每个选项卡一个)。

答案 1 :(得分:0)

  

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

我想,你在谈论Ajax请求(HTTP)。

所有Java EE Web框架(当然还有SpringFramework MVC)都基于HttpServlet用法。您还可以阅读JSR-315 specification

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

所以答案肯定是肯定的。

关于其他框架,请查看the list in wiki

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>