乐趣区

关于java:八年磨砺全新版本的-JFinal-又有哪些新变化

JFinal 我的项目于 2012 年开源,通过 8 年多的倒退,用户数量高速增长,当初曾经是最受欢迎的国产框架之一。自开源开始,每年 JFinal 都会在国庆长假公布一个新版本,往年的尽管来得晚了些,但也绝没有缺席。
明天就和 Gitee 一起看看八年后 JFinal 又有哪些新变动把。

项目名称:JFinal
我的项目作者:JFinal
开源许可协定:Apache-2.0
我的项目地址:https://gitee.com/jfinal/jfinal

我的项目简介

JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其外围设计指标是开发迅速、代码量少、学习简略、功能强大、轻量级、易扩大、Restful。在领有 Java 语言所有劣势的同时再领有 ruby、python 等动静语言的开发效率。

我的项目特点

  • MVC 架构,设计精美,应用简略
  • 遵循 COC 准则,反对零配置,无 XML
  • 独创 Db + Record 模式,灵便便当
  • ActiveRecord 反对,使数据库开发极致疾速
  • 极简、弱小、高性能模板引擎 Enjoy,十分钟内把握 90% 用法
  • 主动加载批改后的 Java 文件,开发过程中无需重启服务
  • AOP 反对,拦截器配置灵便,功能强大
  • Plugin 体系结构,扩展性强
  • 多视图反对,反对 Enjoy、FreeMarker、JSP、Velocity
  • 弱小的 Validator 后端校验性能
  • 功能齐全,领有传统 SSH 框架的绝大部分外围性能
  • 体积小仅 777 KB,并且无第三方依赖

本次更新内容

以下内容节选自官网博客:https://www.oschina.net/news/…

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 中外层正渲染了一部分的数据。

剩下还有数十项粗疏打磨,在官网能够下载到残缺的 changelog: https://jfinal.com。

如果你是明天第一次意识 JFinal,那么就点击前面的链接返回我的项目主页看看吧:https://gitee.com/jfinal/jfinal

退出移动版