Releases: nutzam/nutz
Nutz 1.r.58 龙井虾仁
前言
本来要趁G20的喜庆气氛发布这个版本的,而且是nutz公开发布7周年,nutzcn社区上线1周年,但台风来了,被吹成了SB.
月初,我(wendal)组织了一次长达4小时斗鱼直播(nutz.cn的内存泄漏排除),收看人数随着时间的推移正比例下降,
最终收入鱼丸0个和鱼翅0根,妥妥的稳定0收入.最终,在睡醒一觉之后,怒删几个依赖库,解决了.
随机调查了2名群众, 35%的群众表示,没有球没有肉,全是硬货太难啃,最终也没高潮,必须差评!!!
另外,有小伙伴投诉说最近nutz刷版本很快啊,实不相瞒,当前的发布周期就是2-3个月,我觉得不算快枪手了.
这次,我们集中力量完成了dao层的几个重要更新: #1116 读写分离,#1117 拦截器机制,#1119 支持存储过程的出参
与1.r.57.r3的兼容性
这个版本的兼容性,主要是DaoRunner的实现类NutDaoRunner的变化导致的.
- 判断是否开启自动事务,以前是NutDao负责,现在由NutDaoRunner负责 -- 如果自定义NutDaoRunner的话,改为复写其{_run}方法即可
- SQL日志的打印,现在由DaoLogInterceptor负责 -- 与daocache配合时的日志有变化,但是对功能没有任何影响. 详情看[issue1137 https://github.com//issues/1137]
主要变化:
- add: #1116 Dao读写分离
- add: #1117 Dao拦截器机制
- add: #1119 支持存储过程的出参
- add: #1121 支持vue-resource的X-HTTP-Method-Override
- fix: #1134 SimpleDataSource不兼容Mysql6.0驱动
- fix: #1114 Http轻客户端的Session维持
- fix: #1109 Mvc前置表单列表的索引顺序不对
关联项目更新:
- add: daocache支持dao拦截器模式配置
- add: dubbo插件,兼容原生dubbo配置
- add: apidoc插件
- add: SfntTool插件,字体文件精简,用于PDF字体内嵌
- update: views插件支持pdf view和velocity layout
- update: sigar符合新版nutz插件的命名规则
- update: 大鲨鱼写的 https://github.com/Wizzercn/NutzWk 3.2.7
- update: 單純願望 https://github.com/Kerbores/NUTZ-ONEKEY 2.0
- update: 悟空 https://github.com/wukonggg/mz-g 0.6.3
1.r58 预览
欢迎下载源码或快照版进行测试
Nutz 1.r.57.r3 修正IocBean初始化时的并发安全性问题
详情请参阅issue #1108
1.r.57 綦河北渡鱼 -- 功能更新
请使用1.r.57.r3
主要变化:
- fix: @Inject在setter上标注有时候抛异常
- fix : Record没有实现Comparable接口
- fix: 入口方法中不带@param的字符串数组参数,会抛异常
- fix: 在事务内新建NutDao实例的会抛出NPE
- fix: UploadInfo的终值是0,而非与sum相等
- fix: 1.r.56中的makeEntity方法在处理Map时有可能抛出NPE
- fix: SQLServer下批量插入带自增id的列表会报错
- fix: 文件上传有可能出现命名重复
- add: 新增X-Powered-By,自豪地使用nutz
- add: 数据库关键字处理,默认关闭,可通过Daos类启用.
- add: 自定义SQL的分割符可以自定义了
- add: org.nutz.http添加异步支持
- add: EL支持通过代码注册function
- add: @async能自定义ExecutorService了
- add: JsonFormat.dateFormat支持特殊格式timestamp,输出时间戳long值
- add: PropertiesProxy新增make方法,革新ioc js配置
1.r.56 鄱阳湖黄丫头 -- Bugfix安心升级版
这个版本是一个Bugfix版本,只有极少的新特性, 若正在使用1.r.55 可无缝升级.
问题修复:
* @Inject根据类型注入有致命的bug.
* 继承SimpleAopMaker的类如果是个Ioc Bean,所引用的对象会创建多次.
* DB2下Daos.queryCount生成的语句不对.
新特性:
* Cnd类新增andEX和orEX方法
```java
// 以前
Cnd cnd = Cnd.where("age", "<", 25);
if (!Strings.isBlank(city)) {
cnd.and("city", "=", city);
}
//现在
Cnd cnd = Cnd.where("age", "<", 25);
cnd.andEX("city", "=", city);
```
提交统计
127 files changed, 839 insertions(+), 2622 deletions(-)
关于命名
* [http://nutz.cn/yvr/t/rlq8pik42cit0rkasmbepalnm9 申请一个nutz版本冠名鄱阳湖黄丫头]
1.r.55 羊驼炒鸭梨
新功能/问题修复
主要内容:
* add: 异步注解@async
* add: 改进自增主键的获取,并自动识别可批量插入的insert操作
* add: 更智能的@Inject -- 自动按类型注入
* add: dao.insert可忽略空值和零值
* add: 方法上的Mvc注解支持继承,但方法参数上的注解是不会继承的.
* add: PropertiesIocLoader,用properties文件简易定义ioc bean
* add: SimpleAopMaker,自定义Aop注解变成非常简单
* add: @el再加一个默认方法'by' 代理调用任意类的任意public方法
* add: 入口方法支持@cookie注解
* update: 继续优化NutDao的事务处理机制
* fix: Daos.migration在oracle下,如果新增TimeStamp类型的字段会报错
* fix: db2/sqlite/sqlserver 2008自动建表会失败的bug
* fix: UU32FilePool的文件夹分隔符错误
兼容性
* DaoStatement.onAfter和PojoCallback.invoke添加了Statement参数
* Ioc/Ioc2接口添加了getNamesByType和getByType方法
* JdbcExpert接口添加了addColumnNeedColumn和supportTimestampDefault方法
性能变化
* dao.fastInsert轻微下降,但支持获取自增主键的值了(Oracle数据库除外)
* dao.insert提高10%+(Oracle数据库除外)
百度网盘下载: http://pan.baidu.com/s/1bnLc4Nl
1.r.55 候选第一版
新功能/问题修复
主要内容:
* add: 改进自增主键的获取,并自动识别可批量插入的insert操作
* add: 更智能的@Inject -- 自动按类型注入
* add: dao.insert可忽略空值和零值
* add: 方法上的Mvc注解支持继承,不包括参数注解
* add: PropertiesIocLoader,用propeerties文件简易定义ioc bean
* add: SimpleAopMaker,自定义Aop注解变成非常简单
* add: @el再加一个默认方法'by' 代理调用任意类的任意public方法
* add: 入口方法支持@cookie注解
* update: 继续优化NutDao的事务处理机制
* fix: Daos.migration在oracle下,如果新增TimeStamp类型的字段会报错
* fix: db2/sqlite/sqlserver 2008自动建表会失败的bug
* fix: UU32FilePool的文件夹分隔符错误
1.r.54 第一个正式版
没错,这一天来了!!
代码在 tag 1.r.54.r2
1.b.54 RC1 -- 未命名版本
v1.r.54.rc1 add: CrossOriginFilter
1.b.53 红烧鲨鱼面
大量的改进,详情请看发行注记