簡體   English   中英

Spring3 vs Tapestry 5.3

[英]Spring3 vs Tapestry 5.3

我目前正在嘗試將Spring3與Tapestry 5.3進行比較。 自2003年以來,我一直是Tapestry的用戶,因此我傾向於持有偏見,這僅僅是因為我沒有使用Spring的經驗。 我看到Spring被大多數編寫Java應用程序的公司廣泛采用,因此它迫使我不得不為我的新Web應用程序查看它。 我當前的目標是構建一個功能非常豐富的javascript應用程序,該應用程序只需進行很少的配置,並提供大量可用組件。 我對Tapestry5的最大抱怨是,它旨在與Prototype庫一起使用。

有人可以為我提供Spring3的正面和負面信息,以及為什么一家公司會選擇在Tapestry5上構建Spring3嗎? 我已經搜索過Google,看來我發現的唯一比較過時了。 謝謝。

我必須為我工作的公司做一個小的概念證明。 我看了Spring MVC 3和Tapestry 5。

對於尚未使用Tapestry的用戶,它具有UI流的非常好的約定,例如。 按下按鈕或跟隨鏈接。 也很高興您的Page類中的所有內容都是ThreadLocal,因此您不必擔心該級別的並發性。

另一方面,我不喜歡Tapestry對Ajax的支持。 它具有自己的用於執行ajax操作(區域等)的標簽,但是很難做到

$.ajax({
  url: "tapestry_page",
  success: function(result) {
    // do something with json result
  }
});

由於掛毯接受返回類型 您說您的項目將包含豐富的javascript,這可能意味着很多ajax。 僅出於這個原因,我會選擇Spring。 您只需使用@ResponseBody注釋@Controller方法,您返回的任何內容都將直接寫入響應的主體。 這對於直接編寫json或xml(在大多數情況下是由Jackson或JAXB自動生成)非常有用。

對於Spring,最大的好處是它是一個非常成熟的項目,因此您需要的所有東西,可能有人在您之前就需要它,並且可以找到解決方案(並不是Tapestry並非如此,而是存在有關Spring的更多文檔)。

對Spring的一些負面影響:它與Servlet的方式, doGetdoPost非常緊密地耦合在一起,諸如表單處理之類的事情並沒有Tapestry的表單生命周期中的緊密結合。 如果您要執行大量同步操作,Tapestry的Page概念非常好,也許是您可以采取的方法。

我不確定Tapestry是否已達到可以不使用xml配置整個應用程序的地步,但是Spring可以。 這可能對您有利。

我的2美分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM