codecamp

1.a.28 发行注记

关于 1.a.28

Nutz 1.a.27 发布之后的近两个月,社区发布了 1.a.28 版。它进行了较重大的改进:

  1. 对 Ioc 接口关于 Ioc 做了一个稍微重要的修改--增加了一个方法
    <T> T get(Class<T> type) throws IocException;
    • 同时将注解 @InjectName 从 mvc 包移动到 ioc 包
  2. Ioc 支持注解方式的配置
  3. 重写了 AOP 的字节码模型
  4. 文件上传适配器默认采用新写的 FastUploading,上传速度提高一倍

问题修复

  • Issue112 通过直接声明一个包来声明包中所有的类为Module by xjf1986518
  • Issue162 Nutz DAO的事物是否能参考Spring的声明式事物管理方式比较好,不知道是否有计划? by hzzdong
  • Issue166 dao: EntityField中的如下方法是不是有点重复啊? by jiongs753
  • Issue168 无法在Mvc中使用xml作为ioc的配置文件 by wendal1985
  • Issue171 DAO: Cnd 生成的 in 语句不对 by jiongs753
  • Issue172 DAO: Dao.delete Dao.clear 等方法无返回值 by jiongs753
  • Issue176 考虑为Ioc提供注解式的配置 by wendal
  • Issue177 MVC默认适配器问题 by zkgale
  • Issue178 首页的字体太难看了 by nowindLee
  • Issue182 mvc: @Ok 的默认值问题 by zozohtnt
  • Issue183 json: 当 Map 的 Key 为非字符串时,渲染不出结果 by zozohtnt
  • Issue186 @Prev出错 by happyday0517
  • Issue187 demo hello Mvc中/demoredirect/byid和byobj,不能传递参数 by for5million
  • Issue190 静态方法注入时,提示不够 by zkgale
  • Issue194 事务拦截器报错 by happyday0517
  • Issue199 MVC: 为UploadAdaptor添加一个空参构造方法 by jiongs753

质量

  1. 共通过了 484 个单元测试用例,代码覆盖率达到62%(按line计算)
  2. Nutz.Dao 经测试在如下数据库上可以工作正常

文档

  • 添加 使用注解配置Ioc
  • 添加 NutAop模型
  • 更新 Aop -声明式切面
  • 更新了一对一、一对多、多对多映射部分

主要贡献者名单

贡献的种类:

  • 问题: 给项目的问题列表汇报一个上的问题,并且该问题被本次发布包括
  • 博客: 在本版本开发期间,写过关于 Nutz 的文章,并被 推荐列表收录
  • 支持: 总结至少出 FAQ 文档
  • 代码: 提交过至少一个修订
  • Demo: 为 Demo Site 提交过代码
  • 文档: 提交过文档,在讨论区发帖或者通过文档上的留言指出现有文档存在的问题
  • 测试: 发布前,参与测试周,发布人给出的任务

如有遗漏,请提醒我们 ^_^

贡献者问题博客支持代码Demo文档测试
Bird.Wyatt--O-O--
for5millionO------
E-HunterO------
Peter Tung-----O-
hzzdongO------
jiongs753O------
zkgaleO------
happyday0517O------
wendalO-OOOOO
zozohtntO-OO-OO

另外,非常感谢

的朋友们,你们提出的任何问题,发表的任何言论,实际上都对这个小框架 产生着潜移默化的影响。 我们也正在不断的努力,希望每一个新版本都能让大家获得更好的编程体验。

1.a.29 发行注记
1.a.27 发行注记
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

表达式引擎

maplist结构

图像处理小军刀

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }