Java Micro Framework:您无法忽略的新趋势
什么是Java微框架,為什么要使用它們?
每種語言都有權衡。 對于Java,要成為一種安全,經過嚴格測試,向后兼容的語言,就要在敏捷性和精簡性方面做出一些犧牲。 毫無疑問,它有一些冗長和冗長的內容,但是,如果您真的想深入研究或大規模推廣,JVM作為后端非常有吸引力。 它功能強大,并已在最惡劣的環境中經過測試。 畢竟,由于某種原因,Java被廣泛使用并且可以強力部署。
然而,并不是每個人都接受事物的狀態。 有好幾個人試圖找到解決Java膨脹的方法,并且仍然保持JVM的功能。 第一個浪潮是圍繞輕量級Java框架(我們寫過其中的一些框架: Dropwizard與Springboot )。 這些為Java提供了輕量級的現代框架,并幫助縮短了開發時間。 現在,最近又出現了第二波浪潮。 那個浪潮是Java微型框架。
新帖:Java Micro Framework:您無法忽略的新趨勢http://t.co/l51yQNrzWd pic.twitter.com/v0JAPXfz6Q
— Takipi(@takipid) 2015年6月10日
什么是Java微框架?
隨著語言的成熟,每個版本的不可避免的影響是完善的庫會不斷增長和膨脹。 一點之后,大多數項目實際上不再需要這些庫中包含的許多功能。 微型框架正在嘗試解決這個問題。 這個想法是創建一個集中的,敏捷的解決方案,使生產過程降至最基本。
微型Java框架本質上是輕量級Java框架之旅的延續。 它們是當今使用Java的最簡便的方法。 作為新手,尚未在所有類型的生產環境中部署它們,但是早期的生產部署已顯示出巨大的成功。 他們的吸引力很明顯,并且這個領域現在充滿了興奮和積極發展。
今天,我將介紹三個可用的更流行的Java微框架:Ninja Framework,Spark和Jodd。
Java微型框架– Github統計信息
忍者框架
Ninja是用于創建Web服務和應用程序的全棧Micro Java框架。 它旨在利用Play和Ruby on Rails的積極方面,并通過純Java格式交付它們。 它使用MVC概念以簡化操作,并具有以一致的方式編寫任何大小的應用程序的能力。
作為一個集成的軟件堆棧,Ninja附帶了許多現成的功能(例如JSON解析,指標支持,HTML渲染),這需要為控制器添加一些注釋和定義。 其中許多功能都是基于使Ninja成為對DevOps友好的工具。 這些庫的包含使Ninja易于使用。 在可伸縮性方面,Ninja是無狀態設計,這使得水平擴展僅需添加服務器即可。
在此功能和易用性之間的權衡是,與該領域的其他一些工具相比,用戶選擇更少,占用空間更大。 為您選擇了開發結構,并自動創建了一組源文件夾和文件。
人氣和圖書館:在Github上 ,Ninja撰寫本文時擁有809顆星星和288個叉子,與Jodd相當,但在人氣上遠遠落后于Spark。 如果您想貢獻,請查看Github頁面。 對于HTML渲染,Ninja使用Freemarker。 為了處理JSON和XML,使用了Jackson。 許多核心庫由Ninja編寫。
入門: Ninja入門非常簡單。 它基于Maven,需要Java和Maven才能運行。 Ninja項目通過Maven原型工作,一旦創建,用戶就可以使用單個命令來構建新項目。 要啟動第一個項目,命令是
mvn archetype:generate -DarchetypeGroupId=org.ninjaframework -DarchetypeArtifactId=ninja-servlet-archetype-simple輸入一些值并移至項目目錄后,執行以下操作將在其“ SuperDevMode”中啟動Ninja(它將拾取您自動進行的更改):
cd MY_INSTALLED_PROJECT mvn clean install // to generate the compiled classes the first time mvn ninja:run // to start Ninja's SuperDevMode從那里,您可以將項目導入所選的IDE中并開始編碼。 有關更多詳細信息,請查閱文檔 。
要點: Ninja Framework重新設計了Java框架,以提供簡單,可伸縮且易于使用的功能。 它提供了許多功能,使用戶可以輕松地快速啟動和運行。 作為一個完整的堆棧框架,與其他某些選項相比,您確實獲得了更大的占用空間和更少的可定制性。
火花
請勿與Apache Spark混淆,此Spark的目的是設計一個純Java框架,該框架可用于輕松,簡單地創建REST API和/或Web應用程序。 Spark是一種敏捷且精簡的框架,大小不到1 MB,可用于快速輕松地開發應用程序。 最初受到Sinatra的啟發,Spark已發展成為一個完全實現的Web框架,擁有一個敬業的開發人員社區,該社區繼續保持活躍的發布周期。
作為一個微框架,Spark決定讓用戶選擇模板引擎來設計其應用程序。 他們提供的靈活選擇庫使用戶可以為他們的項目選擇最佳選項,而不會因生態系統細節而陷入困境或學習困難。 并且由于他們專注于提供小尺寸解決方案,因此幾乎不需要任何配置或樣板。
與其他選項相比,Spark的靈活性和簡單性的折衷是其功能較少。 Spark的目標是盡可能地簡化和直接,從而省去了許多額外的工作,例如過多的注釋和XML配置。 為了超輕量級,它犧牲了一些潛在有用的功能。
入門: Spark入門非常簡單。 它需要Java和Maven才能運行。 第一步是添加一個Maven依賴項:
<dependency><groupId>com.sparkjava</groupId><artifactId>spark-core</artifactId><version>2.2</version> </dependency>第二步是導入Spark并開始編碼:
import static spark.Spark.*; public class HelloWorld {public static void main(String[] args) {get("/hello", (request, response) -> "Hello World!");} }有關更多詳細信息,請查閱文檔 。
人氣和圖書館:在Github上,截至撰寫本文時,Spark擁有2398個星星和542個分支,使其輕松成為我今天在這里重點介紹的三個框架中最受歡迎的框架。 如果您想貢獻,請查看Github頁面。 Spark提供的靈活性的一部分不是將用戶鎖定在特定的庫中。 例如,對于HTML渲染,可以使用Freemarker,Mustaches,Velocity,Jade,Handlebars,Pebble或Water。 對于您要使用的任何對象,都添加一個Maven依賴項進行設置。
總結: Spark消除了許多Java膨脹,并提供了一個簡單而靈活的Web框架,該框架易于設置,可用于創建各種Java項目。 但是,通過細化,您確實會失去一些功能,因此Spark對于大型Web應用程序不是理想的選擇。
喬德
Jodd是Java的微型框架,工具和實用程序的集合,因此它可能無法直接與此處的其他同類工具進行比較。 實際上,例如,Spark可能會作為Jodd的一部分包含在內。 但是Jodd的驅動力是減少許多Java工具和框架的占用空間并降低其運行速度,并提供多種超輕量級框架和工具。 Jodd不會將它們全部組合在一個單獨的應用程序中,而是將每個庫分解成自己的獨立塊,從而允許用戶選擇并選擇他們所使用的庫。
喬德(Jodd)已經存在了一段時間,在那段時間里,他們只要發現需要就構建了輕量級的工具和實用程序。 通過使工具和框架保持分離并以松散的形式提供它們,Jodd可以為每個單獨的零件保留極為集中的范圍。 它們具有用于處理請求,用于DI容器,用于解析HTML5等的框架。 像這樣的集合似乎違反了簡化的微框架的想法,但是整個捆綁包的容量不到1.5 MB,因此占用空間很小。
與喬德(Jodd)的權衡是,它還沒有為您完成。 庫集合中提供了大多數功能,但是您必須動手并自行設置。 可定制性為用戶提供了很多控制和靈活性,但是使用起來卻不那么容易。 幸運的是,每個單獨的工具既簡單又小巧,因此深入研究代碼不需要費力地摸索。 Jodd站點上的文檔還提供了一些指導和最佳實踐。
入門: Jodd是使用Gradle構建的,并且針對Java 1.5及更高版本。 由于Jodd是工具的集合,因此入門并不像其他工具那么簡單。 一種選擇是下載Jodd軟件包以獲取所有模塊。 另一種選擇是通過Git從源代碼構建Jodd。 為此,
克隆Jodd Git存儲庫:
然后使用以下命令構建項目:
gradlew build您也可以在Maven中安裝Jodd。 為此,請使用以下命令:
gradlew install有關不同模塊的更多詳細信息以及如何使用它們的一些示例,請查閱Jodd的文檔 。
知名度和圖書館:在Github上 ,Jodd撰寫時擁有837顆星星和243個分支,使其與Ninja相當,但遠遠落后于Spark。 如果您想貢獻,請查看Github頁面。 Jodd是實用程序,框架和工具的集合,因此它使用的庫是自己的。
總結: Jodd是非常專注且輕量級的框架和工具的集合。 用戶可以通過多種方式組合這些庫,以獲取仍可提供許多功能的定制解決方案。 但是,通過將每個元素分解為不同的部分,用戶有責任潛入并按照自己的需要進行一切設置。
結論
Java微型框架是嘗試在保持Java優勢的同時解決其弱點的嘗試。 他們專注的裸露方法允許非常輕便的應用程序部署,從而幫助開發人員將JVM的功能與更新,更快的語言的敏捷性相結合。
作為較新的開發,定義什么才是Java微型框架可能是一個意見問題。 根據你想如何定義來看,有幾個人可以包括和探索,如JHipster , Javalite , Ratpack和Vert.x 。 如果您過去使用過微框架,請在下面的評論部分中告訴我們您對微框架的看法。
翻譯自: https://www.javacodegeeks.com/2015/06/java-micro-frameworks-the-new-trend-you-cant-ignore.html
總結
以上是生活随笔為你收集整理的Java Micro Framework:您无法忽略的新趋势的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信拉手是什么意思 什么是微信拉手
- 下一篇: openshift_红帽Openshif