Java應用框架 Nutz
對于 Java 程序員來說,除 SSH 之外,的另一個選擇:
Nutz
當然,它是開源的,并且是完全免費的,同時也是商業友好的(Licensed under the Apache License, Version 2.0)。
同傳統的 SSH 相比,它具備如下特點:
- 輕 -- 當前最新版,整個 jar 文件共 950k
- 薄 -- 針對 JDBC 的薄封裝,無緩存
- 全 -- 提供了 Dao (ORM, SQL 管理), Ioc, Aop, Mvc, Json解析 等必要功能
- 活 -- 各個部分可以獨立使用,比如在 Spring 里采用 Nutz.Dao ,又比如在 Nutz.Ioc 里使用 Hibernate 等
- 整 -- 它所有功能均不依賴第三方 jar 文件。
這就意味著:如果一個 Web 應用,你在 WEB-INF/lib 下只 需要放置一個 nutz.jar 就夠了
當然你要使用其它的連接池,數據庫驅動,打印PDF支持等功能,還需要自行添置 jar 包。
Nutz 為誰而設計?
- 如果你覺得 Hibernate 控制比較繁瑣,iBatis 編寫SQL又比較麻煩,Nutz.Dao 專為你設計。
- 如果你覺得在多個服務器部署或者修改 Spring 配置文件很麻煩,Nutz.Ioc 專為你設計
- 如果你覺得直接寫 XML 配置文件很麻煩,可視化編輯器又沒控制感,Nutz.Mvc 專為你設計
- 如果你覺得 JSON 轉換很麻煩(要寫超過一行以上的代碼),Nutz.Json 專為你設計
- 如果你覺得 Java 語法不如 Ruby 便捷, Nutz.Castor 以及 Nutz.Lang 專為你設計
- 如果你以前根本沒接觸過 SSH ,只使用 JDBC 編程, 整個 Nutz 專門為你設計
- 你只要在你的 classpath 下部署這個 900多K 的小 jar 包,你會得到上述所有好處
我要使用 Nutz,該從那里入手呢?
- 下載 Nutz -- 包括文檔和源碼都包含在下載包中
- 閱讀文檔 -- Wiki 頁面 有充分的介紹,每個部分都有 Hello World
- 運行 Demo -- Demo 在不斷的添加中 ... 現在已有 7 個可用 Demo
- 編譯 -- 請看詳細介紹
- 運行測試 -- 請看詳細介紹
另外:
- Amosleaf 寫了一個 Nutz.Dao 入門的例子
- Peter Tung 寫的 Nutz Json Book 幾分鐘可以讓你對 Json 解析入門
Nutz 的質量
托社區的福,截至到現在為止,Nutz 一共通過了超過 610 個 JUnit測試。其中有 152 個用例針對數據庫,并在如下數據庫中工作良好:
截止到 1.b.35 為止,大約有 66% 的代碼被 JUnit 測試用例覆蓋:
更多詳情,請請 查看最新emma測試報告
在一個功能告一段落以后,我通常會花1-2個晚上在一邊咂著廉價的紅酒一邊頗有成就感的書寫JUnit測試。 通常我會用 JUnit 把我自己擊潰,緊接著的那幾天我都努力讓那個該死紅條變綠,之后,又想方設法寫出 新的Junit測試試圖讓它再度變紅。并且我還要保證所做的修改不能讓代碼膨脹,這的確讓我死掉了不少腦 細胞。這些測試中,不僅涵蓋各種功能上的測試,也涵蓋了一些跨越線程的測試。在以后,我會針對代碼執 行的效率加入一些新的測試。
我能保證的就是Nutz的代碼是小巧的,以及通過盡可能多的 JUnit 測試。但是所有我能做的也就只是 這些了,找出剩下的那些代碼上的缺陷,就應該交給 Nutz 第一批“小白”們了。“小白”們,加油!我 支持你們...
小白: 是小白鼠的簡稱。小白鼠是實驗室的最愛,實驗室是產生新東西的地方。
注: 從 09年9月開始,隨著“小白”們的不斷增多,項目的 Issue 列表越來越長,不斷的有人發現缺陷,也不斷的有人 提交修復,現在,基本上是整個社區在決定 Nutz 的品質。
Nutz 的未來
Nutz 是一個新興的開源項目
它沒有過去,只有未來
我可以保證,在未來,Nutz 的代碼 絕對不會膨脹。 所有的功能設計的出發點就是最大限度給予程序員實惠。
- 下面一些計劃會被執行,但是不一定按照我給出的順序:
* 為 Nutz 的 Ioc 和 Mvc 開發一個代碼生成器 * 讓 Nutz.mvc 支持自動生成縮略圖 * 為 Nutz 建立一個項目主頁,提供討論區和 Wiki * 提供英文文檔
- Nutz 會是一個長期的項目,因為
1. 我寫它不花錢 2. 我喜歡寫代碼 3. 我不擔心自己的生計 4. 社區很活躍,越來越多的人在貢獻代碼,測試,提交問題
你完全可以讓這個項目變得更加美好
- 不編寫代碼,你可以能為這個項目做很多事情 @hilliate
- 你可以隨時 提交你發現的問題
- 在 討論區 分享你的使用心得
- 任何人 用 任何方式 => 指出 Nutz 的缺陷,都是被歡迎的
- 如果你想成為 Nutz Committers 中的一員,請 閱讀這里
本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!