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 繼續進行了增強與細緻打磨,主要變化有:
這個需求在底層就是對中文標識符的支持,沒想到提出這個需求的同學還挺多,光是 jfinal 俱樂部就有將近 10 人提出想要這個功能。
雖然我自己感覺這需求挺奇葩,但真實需求就必須要打破個人主觀偏見,為用戶創造價值更重要。
好在 jfinal 極簡設計之下,添加這個功能也就 19 行代碼的事,10 分鐘內打完收工,添加中文標識符支持以後,可以這麼來用了:
#(美女.身高)#define 中文函數名在此() #(中文變量名在此)#end
老版本的捨入默認用的銀行家捨入法,這個在歐美用得較多,在國內四捨五入用得多,所以這個功能很重要。
此外,捨入方式可以配置,配置方法如下:
engine.setRoundingMode(RoundingMode);
老版本的 #date 指令只支持 java.util.Date 及其子類,雖說自行擴展也很容易,但官方提供可以進一步節省你的時間專注業務開發。
為了支持 LocalDateTime,索性對 com.jfinal.template.io.Writer 新增了針對 LocalDateTime 的 write 方法,這樣便於在擴展 enjoy 指令時更方便處理 LocalDateTime。
代碼量減少了將近 50%,可讀性更好,性能更高,壓縮率更高,壓縮 sql 模板格式更美觀,sql 壓縮配置方法:
activeRecordPlugin.getEngine().setCompressorOn(' ');
與本次同時升級的還有 jfinal 4.9.02、jfinal undertow 2.2、jfinal weixin 2.8、activerecord 4.9.02