阅读:9722次   评论:14条   更新时间:2011-05-26    
Nutz 是一组轻巧的开源框架,内容主要涵盖了

数据持久化 (Data Persistence)
反转控制 (Ioc)
Web框架(MVC)

Nutz 所有的功能均不依赖第三方的jar包。

http://nutz.googlecode.com 是它的开源项目首页,主要提供下载以及SVN服务

概括的说,Nutz 包括了所有 Hibernate,Spring Core,Struts 提供的主要的功能,以及一个功能完备的 Json 解析器。令我惊讶的是,所有这些功能加起来,Nutz 却只有 330K, 比 Hibernate,Spring Core,Struts 任何一个都要小,功能却是它们之和,并且还要多。我因此对那三个框架的源代码持有强烈的疑问:实现这点功能真的用得着写那么多代码吗?

作为一个新兴的框架,Nutz提供的这些功能又是相互独立的,你可以拿出任何一个来单独使用,同其它你所钟爱的框架融合。比如 Nutz.Dao ( 数据持久化框架)可以很容易的集成在 Spring 中,因为在  Spring 中,你就把它当作个一般的 Java Bean就好了。

我想很多人都会颇为尖锐的指出,SSH 已经足够成熟了,你为什么还另搞出一个来,重复造这个轮子有必要吗?

呵呵,其实,我不过是想给朋友们一个另外的选择。

的确,Nutz 是我一个人利用业余时间在3-4个月时间写完的,之后又花了一个多月在文档上以及代码质量上作了一些调整,包括让一些朋友试用,倾听他们的意见。我开发 Nutz 的初衷并不是想写一个超级无敌的 Web 开发框架,我最初的动机是想让自己能在数据持久化方面,在我觉得 iBATIS 还不如 Hibernate 的情况下,有一个除了 Hibernate 之外的选择,一个称心如意的选择。我要的不多,我就是想把一堆我定义的Java对象存在我定义的数据表里,然后在我需要的时候把它们取出来,我不明白的是 Hibernate 完成这些简单的事情为什么竟然用了 2.7M。

我不喜欢 Spring (其实我还是很爱它的)的一点就是它让我把对象的映射关系存在了 XML 里,我觉得存在数据库里(在大型项目的时候)更有用,而小型项目,最好存在 JSON 文件里,总之我不喜欢写 XML。 我也不喜欢 Guice 所谓的把映射关系写在 Java 代码里,因为我不喜欢侵入我的 Java  代码。

我不喜欢 Struts, 因为它什么都没替我干。我的项目不会因为采用它而减少我的编码。我觉得如果我使用了一个框架,那么它就必须让我的代码有比较显著的减少,否则我用它干嘛?

呃...... 我是不是有点吹毛求疵了?

不不不不,我不这么认为。起码我不这么认为。为了证明我这一点,我写了Nutz。

通过它,我可以可以轻松的持久化我的数据,每当我打算对数据库操作的时候,我几乎都笑出了声来,太简单了。因为 Nutz.Dao (我数据库持久化框架的名称)设计的时候最先考虑的就是容易理解与使用。
关于它的细节,清参看 《Nutz.Dao Book》。你可以在http://code.google.com/nutz 上找到这本小小的电子书的下载。

通过 Nutz.Ioc, 我不仅可以把对象的Mapping关系存在数据库中,我也能存在JSON文件中,唯独不能的就是存在XML文件中,XML?嘿嘿,我偏不实现你。当然,其实,我没那么死心眼儿,我现在也正在考虑加上一个针对Spring XML格式的实现,甚至我还打算加上对  Guice 支持的实现。当然这是后话了,Nutz.Ioc 利用了 MappingLoader 和 Mapping 这两个接口把映射关系的具体实现完全隔离开了。 将来即使我想把 Mapping 关系存在 HTML 里都没关系,换一个 MappingLoader 的实现就成了。

通过 Nutz.mvc,数据的基本的增山改查你甚至连 Java 代码都不用写,它内置了很多写好的控制器和视图给你,你改改配置就成。而且 Nutz.mvc 的配置关系是通过 Nutz.Ioc 维护的,也就意味着,你的控制器,视图,Service 什么的全是可以Ioc的,并且可以保存在数据库或者 JSON 文件中。
值得一提的是,Nutz.mvc  也内置了权限检查,文件上传,文件下载等功能。将来还可能会增加一些其他的实用功能,比如验证码生成,文件缩略图制作等。

4个月以后的今天,我写完所有的代码,准备 Release Nutz的第一个版本,但是我面临着两个问题 ... 请看《关于 Nutz 的质量》一文
评论 共 14 条 请登录后发表评论
14 楼 xiaozei523 2011-01-19 22:37
非常好非常好非常好非常好
13 楼 tsyouaschen 2010-10-15 10:30
怎么那么多无聊的人啊..
12 楼 shunai 2010-05-28 22:45
刚接触...
11 楼 ostriches 2010-05-18 18:36
非常好,我有相见恨晚的感觉,呵呵
如果有时间,希望我也能为nutz出点力。
10 楼 xiadi8364 2009-11-30 18:28
看完以后 我都无语了
9 楼 jeffsui 2009-10-10 10:11
有点意思。楼主继续啊。
8 楼 zozoh 2009-08-12 14:16
doittestabc 写道
import com.zzh.dao.callback.SqlCallback;
这个在包里面找不到,不知道怎么回事??


SqlCallback 在新的版已经被丢弃掉了。
Nutz 项目正在准备发布一个新的 Alpha 版本。 或许这个 Alpha 版本有可能成为一个 Beta 版。
现在正在进行系统的文档整理中,届时,关于 Nutz 的 Dao,Ioc,Mvc,Json 都会有比较详尽的文档供大家参阅
7 楼 doittestabc 2009-08-11 17:27
import com.zzh.dao.callback.SqlCallback;
这个在包里面找不到,不知道怎么回事??
6 楼 abc130314 2009-05-21 08:55
不错。我有点一见钟情的感觉。
5 楼 zozoh 2009-05-20 22:33
虽然不多,但是如果你看的仔细,还是能找到几行注释的 
4 楼 kunmengzi 2009-05-20 15:21
很好!

但是,代码注释为0……
3 楼 switch200500 2009-05-19 23:05
无疑,是一个好东西,期待!
2 楼 zozoh 2009-04-28 11:36
纳特贼(4声)
Nut => 坚果
Z => 像闪电,形容快

这里
http://code.google.com/p/nutz/logo?logo_id=1239077401
是它的 Logo
1 楼 kowen 2009-04-27 14:49
很感兴趣,nutz怎么读?
纳兹?

发表评论

您还没有登录,请您登录后再发表评论

文章信息

  • zozoh在2009-04-21创建
  • zozoh在2011-05-26更新
Global site tag (gtag.js) - Google Analytics