Nutz官方手册*********1.写在前面的话1.1.写在前面的话1.1.1.Java为什么不能是一门敏捷的语言呢?起码Java是一门优美的编程语言,经过10多年的发展,它几乎已经被应用到了任何地方,在高端的企业服务器上,手持设备的芯片里,车载设备,智能家电甚至火星车上。在功能上,它广泛的涉足到了软件应用的各个领域,现在,它开始向桌面和图像处理方面频频发力。从历史上看它是一门成熟的语言,从现在来看,它是世界上使用最广泛的语言,从将来看,它是最有前途的语言(现在它依然充满了活力和创新)。但是,在越来越流行的Web开发领域,Java似乎逐渐露出了疲态。是的,脚本语言们卷起了一场热潮,似乎已经快可以用“革命”两个字来形容了。而Java,被“脚本小子们”诟病最多的便是低下的开发效率。但是,真的是这样的吗?从本质上来说,Java语言本身为程序员提供的帮助只有两点,一是语言的语法,二是内置的类库。现在从事Web开发,大多是采用第三方的类库(或者说是框架),比如流行的SSH。所谓Java在Web开发的低效,不妨这样说比较贴切一些:采用第三方类库进行开发比较低效。为了证明这一点,我写作了Nutz,它是一组轻便小型的框架的集合,各个部分可以被独立使用。而Nutz的目标就是在力所能及的情况下,最大限度的提高Web开发人员的生产力。是的,提高生产力是这个框架唯一的目标。就像Java设计之初,考虑最多的是程序员的易用性和运行时效率的权衡,Nutz也是这样。希望通过Nutz,Java的开发人员可以获得更快的开发速度,更少的代码量,并且这些以不损害运行时效率为前提。1.1.2.Nutz可以做什么?Dao--针对JDBC的薄封装,事务模板,无缓存Ioc--JSON风格的配置文件,声明时切片支持Mvc--注解风格的配置,内置多文件上传功能Json--解析和渲染Castors--Java对象类型转换Lang--更简洁的Java函数以及更丰富的反射支持Aop--轻便快速的切面编程支持Plugin--轻便的插件机制Resource--资源扫描********页码:3它所有的功能均不依赖第三方jar包这就意味着:如果一个Web应用,你在WEB-INF/lib下只需要放置一个nutz.jar就够了当然你要使用连接池,数据库驱动等功能,还需要自行添置jar包。1.1.3.Nutz为谁而设计?如果你觉得Hibernate控制比较繁琐,iBatis编写SQL又比较麻烦,Nutz.Dao专为你设计。如果你觉得在多个服务器部署或者修改Spring配置文件很麻烦,Nutz.Ioc专为你设计如果你觉得直接写XML配置文件很麻烦,可视化编辑器又没控制感,Nutz.Mvc专为你设计如果你觉得JSON转换很麻烦(要写超过一行以上的代码),Nutz.Json专为你设计如果你觉得Java语法不如Ruby便捷,Nutz.Castor以及Nutz.Lang专为你设计如果你以前根本没接触过SSH,只使用JDBC编程,整个Nutz专门为你设计1.1.4.Nutz的质量截至到现在为止,Nutz的JUnit用例覆盖率大概是这样的并且这个数字还在不断增加。在一个功能告一段落以后,我通常会花1-2个晚上在一边咂着廉价的红酒一边颇有成就感的书写JUnit测试。通常我会用JUnit把我自己击溃,紧接着的那几天我都努力让那个该死红条变绿,之后,又想方设法写出新的Junit测试试图让它再度变红。并且我还要保证所做的修改不能让代码膨胀,这的确让我死掉了不少脑细胞。这些测试中,不仅涵盖各种功能上的测试,也涵盖了一些跨越线程的测试。在以后,我会针对代码执行的效率加入一些新的测试。我能保证的就是Nutz的代码是小巧的,以及通过尽可能多的JUnit测试。但是所有我能做的也就只是这些了,找出剩下的那些代码上的缺陷,就应该交给Nutz第一批“小白”们了。“小白”们,加油!我支持你们...小白:是小白鼠的简称。小白鼠是实验室的最爱,实验室是产生新东西的地方。1.1.5.Nutz的未来Nutz是一个新兴的开源项目它没有过去,只有未来我可以保证,在未来,Nutz的代码绝对不会膨胀。所有的功能设计的出发点就是最大限度给予程序员实惠。****1.2.*3.1)4.1)5.******页码:41.1.6.你完全可以让这个项目变得更加美好不编写代码,你可以能为这个项目做很多事情@hilliate你可以随时提交你发现的问题任何人用任何方式=指出Nutz的缺陷,都是被欢迎的如果你想成为NutzCommitters中的一员,请阅读这里1.1.7.我使用的时候如果出现问题怎么办?加入讨论区,讨论组一般总是有人在线,你的问题会很快得到响应加入GTalk聊天群--感谢Van添加帐号nutzam@chatterous.com为好友,然后发送@join指令或者访问还有新浪微群Nutz在微笑还有豆瓣小组Nutz的微笑或者加入QQ群Nutz&XBlink(58444676超级群)--感谢E-Hunter的支持Nutz在微笑(60504323)超级群--感谢milkcat!和yanick的支持Nutz②群(68428921)超级群--感谢c.A的支持考虑到,现在这个特殊时期,讨论区即使用https也会不时被墙。所以你还可以给项目成员直接发信一般情况下,你的问题都会得到答复但是你必须知道,这是个开源项目,每个Contributor和Committer没有义务回答问题所以,最好你能翻墙*******页码:52.1.b.43发行注记2.1.1.b.43发行注记2.1.1.1.b.43发行注记大家好,今天是一个值得纪念的日子。为了国荣哥哥,韩寒都开微博...我们这次按计划发布,修了一批小bug,这些bug基本都是小修改,再次感谢提交了这些bug的Nutzer们。并且颇有几个问题,是Nutzer通过pullrequest提交的修改。喜欢Nutz就Fork它。2.1.1.1.做一点呼吁如果你在使用Nutz的过程中碰到了问题,最好从公开渠道提出你的问题。这样更多的人会从你的提问中受益,比如你可以发到:Nutz的豆瓣小组Nutz的新浪微群128323Nutz的问题列表这样,我们可以更容易的追踪和分享你的问题。虽然你可能更偏爱IM工具,以为它可能会让你更快得到你要的答案,其实是一样的。着急得到Nutz最新版,且懒得从源代码编译的同学,你们可以从Nutz的DailyBuild随时获取最新的jar,其实大多数时候,这个jar和每次发行版一样稳定。关注Nutz时间规划的同学,可以关注Nutz的里程碑,不过请注意,我们定的里程碑表示我们希望,而不是我们会确保。因为这是一个自由且随意的项目,我们决定里程碑的日期,以及里程碑包含的特性也基本是自由且随意的。并且,我们认为只有这样,我们才能在品质上做到极致这几天连微博都禁评了,这里,我也少说几句吧,祝大家节日快乐^_^------------------------------Nutz的下载地址的分隔线-------------------------稳定版下载地址:日编译下载地址:的主页:****************************页码:6Issue187jar嵌套调用报错需求byblueramIssue184Objs对象转换bugJsonbyjuqkaiIssue181Mvcs.hasLocaleName方法的逻辑错误?bykevin0571Issue179合并Files中isEquals(Filef1,Filef2)和equals(Filef1,Filef2)两个方法CodeAttachedbygevinhjyIssue176判断“a@b.c”这样的值的时候Strings.isEmail的返回值byywjnoIssue174不知道什么原因Nutz就挂掉了byenzozhongIssue173PropertiesProxy只加载了最后一个配置文件!!重要LangbywendalIssue172nutz+oracl10.1.0.2.0FetchSize设值问题Daobygodson741Issue171daoset,list,map对于String类型的支持Dao需求byenzozhongIssue170当数据库连接池的连接数耗尽,NutDaoRunner会抛NPE重要DaobywendalIssue169日志在OSGi环境下无法正常使用LangbyvurtIssue162nutzjson循环引用,可以输出,但是不能还原byzozohIssue158dao对于set的支持Dao需求byenzozhongIssue155页面String为空映射date问题LangbyysenysenIssue147SimpleCriteria类的toString方法未实现DaobyywjnoIssue136是否需要更新Files类findFile方法的javadoc以及对应的wiki文档?文档byywjnoIssue130自定义的Sql设置PagerDaobygongruiIssue120JSON循环引用的序列化与反序列化,以及EL支持Json需求byjuqkaiIssue75bug,实体解析报错Dao需求bycqyunqin2.1.3.质量共通过了781个单元测试用例,代码覆盖率达到70%(按line计算)Nutz.Dao经测试在如下数据库上可以工作正常H2SQLite--仅有限支持事务操作hsqldbMySqlOraclePostgresqlSqlServer2005SqlServer2000DB22.1.4.文档...少量改动...******页码:72.1.5.主要贡献者名单贡献的种类:问题:给项目的问题列表汇报一个上的问题,并且该问题被本次发布包括博客:在本版本开发期间,写过关于Nutz的文章,并被推荐列表收录代码:提交过至少一个修订Demo:为NutzDemo提交过代码文档:提交过文档,在讨论区发帖或者通过文档上的留言指出现有文档存在的问题测试:发布前,参与测试周发布人给出的任务如有遗漏,请提醒我们^_^贡献列表,我已经写了一个小程序,根据Issue列表来自动统计...贡献者问题博客支持代码示例文档测试Jay蓝色幽默--O----GevinO------blueramO------conanca---O---cqyunqinO--O---enzozhongO------gevinhjy---O---godson741O------gongruiO------********页码:8juqkaiO------kevin0571O------superhanliuO--O---vurtO------wendalOOOO-OOysenysenO------ywjnoO------zozohO-OO-OO另外,很多朋友都在:Nutzam讨论区Nutz&XBlink(58444676超级群)Nutz在微笑(60504323)超级群Nutz②群(68428921)超级群GTalk聊天群添加帐号nutzam@chatterous.com为好友,然后发送@join指令Nutz的新浪微群Nutz的豆瓣小组Nutz的聊天室回答新手的问题,我们现在只能根据印象草草统计,贡献列表非常不完善。我们正在想办法,争取在不远的将来,能记录下来大家每一点一滴的付出^_^!欢迎访问官网,以获取最新的快照版和用户手册**页码:93.关于源码3.1.从SVN编译-Eclipse3.1.1.准备目录3.1.2.使用SVN工具Windows用户:这里用的是龟版SVNLinux