Jooby框架簡化Java Web開發流程

jopen 8年前發布 | 20K 次閱讀 Java Web開發

【51CTO.com快譯】說起Web開發工作,Ruby擁有Sinatra框架而Node.js擁有Express.js。如今,Java也擁有了自己的微Web框架——Jooby。

作為Edgar Espina開發出的成果,Jooby提供模塊化無狀態應用程序開發機制,且能夠使用包括Netty、Jetty以及Undertow在內的多種NIO(即非阻塞IO)服務器。

Jooby框架簡化Java Web開發流程

根據Espina的說法,Jooby的核心取向在于“簡化”。“盡管Java是一種簡單而易于學習的編程語言,但利用Java構建Web應用程序則是一項艱巨的挑戰,”他通過一封郵件指出。“Java社區已經做出大量工作,旨在簡化Web應用程序的開發流程……然而相較于Ruby或者Node,利用Java開發Web應用程序仍然比較困難。Jooby的出現正是為了彌合這一空白,并通過提供客觀、簡單且易于學習的微Web框架簡化Java環境下的Web開發任務。”

Jooby的核心在于模塊,這些模塊的構建目的在于從外部庫中提取功能。“這些模塊非常精簡且能夠通過多種方式對外部庫進行引導與配置,但它們并不會帶來新的抽象層或者通過定制化API實現庫內功能的訪問。相反,它們可以直接依原樣對各類庫組件進行提取,”Espina表示。“這也是Jooby與其它Java Web框架之間的最大差別所在。”

Jooby提供多種默認選項以解決應用程序開發工作中的各類典型問題,例如數據庫訪問、驗證、會話、模板引擎以及電子郵件等等。這使其擁有極為出色的易用性,Espina指出,“但與此同時,它也擁有相當優秀的靈活性與模塊化程度,經驗豐富的用戶能夠將不同模塊進行混合與匹配,從而滿足自身實際需要甚至編寫自己的整合方案。”

Jooby當中的無狀態應用程序開發機制使其能夠在不造成任何重大影響的前提下實現規模擴展,特別是在開發人員配合頭/JWT(即JSON Web Token)驗證機制構建REST API的情況下。當然,在某些用例當中,開發人員可能需要保存用戶信息。“對于這類用例,大家可以使用HTTP會話,”Espina解釋稱。

Jooby提供一套內存內HTTP會話,但開發人員也可以選擇其它不同后端,例如Redis、HazelCast以及MongoDB。該HTTP會話的設計傾向為盡可能精簡,同時要求開發人員認真考量是否要加以使用,因為其只允許匹配原語與字符串這兩類數據。

這套框架擁有兩套編程模式。其一為腳本編程模式,在這里開發人員能夠將應用程序定義并編寫為單一文件。而對于大型且復雜度較高的應用程序,Jooby支持MVC。“在這里,大家可以將自己的應用程序拆分為多個層,并創建一個或者多個控制器類,”Espina告訴我們。

Jooby面世至今已經有大約18個月了,而其1.0.0正式版本預計將在今年年初發布。面向Java 8以及更高版本,Jooby還能夠與Nashorn項目協作,這意味著我們可以將Jooby擴展至JavaScript開發領域。“這是一套Java框架,因此其始終運行在JVM之上; 但從開發人員的角度來看,它也可以作為一套JavaScript框架發揮作用,”Espina指出,他還計劃在未來逐步加入對其它JVM語言的支持能力。

原文標題:Jooby framework simplifies Java Web development

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

來自: http://developer.51cto.com/art/201601/504812.htm

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!