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

栏目: 软件资讯 · 发布时间: 4年前

内容简介:每年国庆长假 jfinal 都会升级一个新版本,今年也不例外。前几天有事被耽误,今天正式推送新版本通知。 这次国庆同时升级的项目有 jfinal、jfinal-undertow、jfinal-weixin、enjoy、activerecord。 在国庆假期已全...

   每年国庆长假 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

   


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

编程之法

编程之法

July / 人民邮电出版社 / 2015-9-1 / 49.00元

本书涉及面试、算法、机器学习三个主题。书中的每道编程题目都给出了多种思路、多种解法,不断优化、逐层递进。本书第1章至第6章分别阐述字符串、数组、树、查找、动态规划、海量数据处理等相关的编程面试题和算法,第7章介绍机器学习的两个算法—K近邻和SVM。此外,每一章都有“举一反三”和“习题”,以便读者及时运用所学的方法解决相似的问题,且在附录中收录了语言、链表、概率等其他题型。书中的每一道题都是面试的高......一起来看看 《编程之法》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

MD5 加密
MD5 加密

MD5 加密工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具