Enjoy 4.9.02 发布,爽爽这三年

2020年10月13日

    Enjoy 模板引擎,爽爽这三年,妙不可言。

    Enjoy Template Engine 采用独创的 DKFF (Dynamic Key Feature Forward) 词法分析算法以及独创的DLRD (Double Layer Recursive Descent) 语法分析算法,极大减少了代码量,降低了学习成本,并提升了用户体验。

    与以往任何一款 java 模板引擎都有显著的不同,极简设计、独创算法、极爽开发体验,从根本上重新定义了模板引擎,这里是首版发布时的盛况,传送门:JFinal 3.0 发布,重新定义模板引擎

    Enjoy 模板引擎专为 java 开发者打造,所以坚持两个核心设计理念:一是在模板中可以直接与 java 代码通畅地交互,二是尽可能沿用 java 语法规则,将学习成本降到极致。

   因此,立即掌握 90% 的用法,只需要记住一句话:JFinal 模板引擎表达式与 Java 是直接打通的。

   本次 Enjoy 4.9.02 继续进行了增强与细致打磨,主要变化有:

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、改进 enjoy 中 Compressor 的压缩算法

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

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

 

与本次同时升级的还有 jfinal 4.9.02、jfinal undertow 2.2、jfinal weixin 2.8、activerecord 4.9.02

展开阅读全文
4 收藏
分享
加载中
精彩评论
C21
再也没有找到比enjoy更小、更精、功能性能更强悍的魔板了。
2020-10-14 09:54
1
举报
最新评论 (7)
牛6666
2020-10-15 09:42
0
回复
举报
999
2020-10-14 14:15
0
回复
举报
C21
再也没有找到比enjoy更小、更精、功能性能更强悍的魔板了。
2020-10-14 09:54
1
回复
举报
慧眼
2020-10-14 14:36
0
回复
举报
集成到 spring 家族 999
2020-10-13 17:39
0
回复
举报
enjoy 的用户量增长很快,超过了 activerecord,增长主要来自于集成到 spring
2020-10-14 14:37
0
回复
举报
666
2020-10-13 17:25
0
回复
举报
更多评论
7 评论
4 收藏
分享
返回顶部
顶部