对于 Java 程序员来说,除 SSH 之外,的另一个选择:

Nutz

当然,它是开源的,并且是完全免费的,同时也是商业友好的(Licensed under the Apache License, Version 2.0)。

最新的源码托管地址已经转移到 Github 上

  • -- 当前最新版,整个 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 包。

  • 如果你觉得 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
  1. 下载 Nutz -- 包括文档和源码都包含在下载包中
  2. 阅读文档 -- Wiki 页面 有充分的介绍,每个部分都有 Hello World
  3. 运行 Demo -- Demo 在不断的添加中 ... 现在已有 7 个可用 Demo
  4. 编译 -- 请看详细介绍
  5. 运行测试 -- 请看详细介绍

另外:

  1. Amosleaf 写了一个 Nutz.Dao 入门的例子
  2. Peter Tung 写的 Nutz Json Book 几分钟可以让你对 Json 解析入门

610JUnit测试 。其中有 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. 社区很活跃,越来越多的人在贡献代码,测试,提交问题

 



  • 加入 讨论区 ,讨论组一般总是有人在线,你的问题会很快得到响应
  • 如果你不能访问讨论区,证明你的当地线路可能屏蔽了 GoogleGroup,你可以试试
  • 加入 GTalk 聊天群 -- 感谢 Van