關於WebWind一點想法

mortimer_c發表於2010-01-29

關於WebWind這一REST風格的Java MVC框架,首先學習下什麼是REST,表象化狀態轉變(英文:Representational State Transfer,簡稱REST)是Roy Fielding博士在2000年他的博士論文中提出來的一種軟體架構風格。目前在三種主流的Web服務實現方案中,因為REST模式的Web 服務與複雜的SOAP和XML-RPC對比來講明顯的更加簡潔,越來越多的web服務開始採用REST風格設計和實現。由此看見,REST是一種設計風格而不是一個標準。

  • REST有一些設計概念和準則:


    網路上的所有事物都被抽象為資源(resource);
    每個資源有一個唯一的資源標識(resource identifier);
    通過通用的聯結器介面(generic connector interface)對資源進行操作;
  • 對資源的操作包括獲取、建立、修改和刪除資源,這些操作正好對應HTTP協議提供的GET、POST、PUT和DELETE方法;
    對資源的各種操作不會改變資源標識;
    所有的操作都是無狀態的(stateless);
  • 能夠利用Cache機制增進效能。

    由此可以看出,REST風格的系統尤其適合於廣域網的應用,因為“將所有的事物看做資源”的準則對搜尋引擎友好,可以方便地被搜尋引擎retrieve到;加上快取的使用,可以增加廣域網應用的效率;另外,“所有的操作無狀態”,更是對B/S這種生而無狀態的應用的充分肯定。(一些類似於維基百科之類的網際網路應用也許就是使用的REST風格的設計。)

在學習並簡單使用(一個具有登陸功能的簡單商品展示模組)WebWind之後,發現這個使用起來相對簡單的REST風格的MVC框架仍然有其可以改進的地方。

優點:充分體現約定優於配置、配置簡單、只要有Spring開發經驗上手極快、易於擴充套件、靈活、統一的異常管理、內建的檔案上傳功能、方便與其他應用框架整合……

可以改進的地方:

不夠靈活。首先從跳轉上來說吧,也許直接在Bean中進行跳轉對減少配置檔案數量非常有用,也許是遵循“約定優於配置”的規則,但是我仍然認為在bean中直接跳轉,可能會導致系統在變更(任何情況導致的變更)時的高成本。

@Mapping("/")對應的URI。目前貌似對應的URI只能使用表示式,不能使用萬用字元。對於某些情況(例如:URI中包含某個目錄時都需要進行的操作),仍然無法使用。

目前,只有這麼一點小小體驗,也許是總做企業級應用系統,對REST風格的系統沒有深入瞭解,難免會有偏頗,以後持續關注REST與WebWind。

相關文章