A5下载 - 努力做内容最丰富最安全的下载站!

A5站长下载站

当前位置:A5下载 > 源码动态 > JFinal 4.9.02 发布,App&Coffee 重磅上线

JFinal 4.9.02 发布,App&Coffee 重磅上线

时间:2020-10-14 12:19作者:qazwsxzxc人气:42

每年国庆长假 jfinal 都会升级一个新版本,今年也不例外。前几天有事被耽误,今天正式推送新版本通知。

这次国庆同时升级的项目有 jfinal、jfinal-undertow、jfinal-weixin、enjoy、activerecord。

在国庆假期已全部推送到了 maven 中心库,可以直接升级使用。

本次升级清扫了积累了很长的待开发列表,大多来自同学们的需求与反馈。新版本以细致打磨为主,但也不乏一些有意思的功能。

1、enjoy 新增对中文表达式、变量名、函数名支持

这个需求在底层就是对中文标识符的支持,没想到提出这个需求的同学还挺多,光是 jfinal 俱乐部就有将近 10 人提出想要这个功能。

虽然我自己感觉这需求挺奇葩,但真实需求就必须要打破个人主观偏见,为用户创造价值更重要。

好在 jfinal 极简设计之下,添加这个功能也就 19 行代码的事,10 分钟内打完收工,添加中文标识符支持以后,可以这么来用了:

#(美女.身高)

#define 中文函数名在此()

#(中文变量名在此)

#end

2、#number 指令、算术运算默认使用四舍五入

老版本的舍入默认用的银行家舍入法,这个在欧美用得较多,在国内四舍五入用得多,所以这个功能很重要。

此外,舍入方式可以配置,配置方法如下:

engine.setRoundingMode(RoundingMode);

3、#date 指令支持 LocalDateTime、LocalDate、LocalTime

老版本的 #date 指令只支持 java.util.Date 及其子类,虽说自行扩展也很容易,但官方提供可以进一步节省你的时间专注业务开发。

为了支持 LocalDateTime,索性对 com.jfinal.template.io.Writer 新增了针对 LocalDateTime 的 write 方法,这样便于在扩展 enjoy 指令时更方便处理 LocalDateTime。

4、ActionReporter 支持自定义扩展

这个需求提出很久了,起初我一直认为这个仅用于开发模式时输出一些有利于开发效率的信息,所以没处理这个需求。

但很多同学说他们将这个功能用于监控系统的运行情况,非常希望能自由扩展,好吧,加上。

扩展很简单,继承 ActionReporter,然后配置:

me.setActionReporter(ActionReporter);

5、Prop、PropKit 对返回值进行 trim() 操作

经过测试 key = value 格式的配置,对于等号两边的空格来说无论是否 trim(),结果是一样的。

但如果 value 右侧有空格,则会成为值的一部分,这类配置错误很难被肉眼发现,这个打磨有一定的价值,以后可以放心大胆的在 value 后方留空格了。

6、enjoy 支持 reentrant

这个需求绝大多数同学碰不到,目前为止也就一位同学有这个需求。简单来说就是有同学在模板渲染的过程之中再次获取一个新的模板进行渲染。由于 enjoy 内部有一个 ThreadLocal 的 buffer,所以 reentrant 的渲染会覆盖掉 buffer 中外层正渲染了一部分的数据。

7、JFinalJson 支持 reentrant

情况与 enjoy 的 reentrant 相似。

8、改进 enjoy 中 Compressor 的压缩算法

代码量减少了将近 50%,可读性更好,性能更高,压缩率更高,压缩 sql 模板格式更美观,sql 压缩配置方法:

activeRecordPlugin.getEngine().setCompressorOn(' ');

9、改进 RedirectRender 对 nginx 反向代理时的支持

简单说就是 nginx 代理了 https,而 nginx 与应用之间走的是 http,这个改进可以让 redirect(...) 仍然重定向到 https 而非 http。

10、新增 TimeKit 用于简化 JDK 8 新增的时间 API

JDK 8 处理时间的 API 虽然有很大进步,但用起来还是啰嗦,TimeKit 去除了一些中间步骤,让功能一步到位,触手可及。

TimeKit 一直是用在具体的项目之中,用得多了干脆就转移到 jfinal 中来,独享不如共享。

11、Render 实现类添加 flush() 操作

极少数同学反馈在有些部署场景之下,客户端接收不到数据,在 render 中添加 flush() 可解决。

添加 flush() 解决上述问题的同时,还可以缩短客户端响应延迟,这个打磨有一定的价值,适应更复杂的部署环境。

12、enjoy buffer 默认值改为 1024

老版本的默认值为 2048,buffer 大些性能会高点,但响应延迟也会高点,缩小为 1024 在高性能与低延迟上更平衡,仍是打磨。

 

剩下还有 27 项细致打磨,为节省大家时间,在这就不一一细说了,在官网可以下载到完整的 changelog: https://jfinal.com

比 jfinal 新版本发布重要得多的事情是 jfinal 社区计划很久的 App&Coffee 频道上线了。

App&Coffee 全称是 Application And Coffee,简单说就是 jfinal 官方和俱乐部打造精致有用的 Application,有需要的同学可以通过给作者来一杯咖啡得到授权,称之为 "咖啡授权"。

App&Coffee 承载了 jfinal 的生态梦想,最终能不能成,就看你是否愿意请作者喝杯咖啡了,写出好代码哪能没有咖啡加持 ^_^

ONE MORE THING:为了进一步大幅度提升开发效率,jfinal 官方已经介入前端,打造一个 jfinal 极简风格的前端框架,前后端同时极速开发将成为现实。新鲜出炉的 jfinal-kit.js 极简前端框架已发布,伴随的第一个应用已经诞生。详情请移步:https://jfinal.com/app/1

标签JFinal,4.9.02,发布,App,amp,Coffe

相关下载

查看所有评论+

网友评论

网友
您的评论需要经过审核才能显示

公众号