Posted on 2010-11-12 21:10
squirrel 阅读(492)
评论(0) 编辑 收藏
对于 Java 程序员来说,除 SSH 之外,的另一个选择:
Nutz
当然,它是开源的,并且是完全免费的,同时也是商业友好的(Licensed under the Apache License, Version 2.0)。
同传统的 SSH 相比,它具备如下特点:¶
- 轻 -- 当前最新版,整个 jar 文件共 820k
- 薄 -- 针对 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 下部署这个 800多K 的小 jar 包,你会得到上述所有好处
我要使用 Nutz,该从那里入手呢?¶
- 下载 Nutz -- 包括文档和源码都包含在下载包中
- 阅读文档 -- Wiki 页面 有充分的介绍,每个部分都有 Hello World
- 运行 Demo -- Demo 在不断的添加中 ... 现在已有 7 个可用 Demo
- 编译 -- 请看详细介绍
- 运行测试 -- 请看详细介绍
另外:
- Amosleaf 写了一个 Nutz.Dao 入门的例子
- Peter Tung 写的 Nutz Json Book 几分钟可以让你对 Json 解析入门
Nutz 的质量¶
托社区的福,截至到现在为止,Nutz 一共通过了超过 500 个JUnit测试。其中有 152 个用例针对数据库,并在如下数据库中工作良好:
截止到 1.a.31 为止,大约有 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
* 提供英文文档
1. 我写它不花钱
2. 我喜欢写代码
3. 我不担心自己的生计
4. 社区很活跃,越来越多的人在贡献代码,测试,提交问题