JFinal 2.0 發(fā)布,JAVA 極速 WEB+ORM 框架
JFinal 是本星球***個提出極速開發(fā)理念,也是唯一個極速開發(fā)框架。自開源以來迅速獲得廣大開發(fā)者的喜愛,極速開發(fā)的優(yōu)勢逐步深入人心。由于極速開發(fā)威力巨大,所以有了以下在 OSChina 的驚人數(shù)據(jù):
1:問答數(shù)2600個,在OSChina 在收錄的37153個項目中總排名第五位,排前四位的項目分別是:java、android、php、mysql,前四個項目在 OSChina 的收錄時間比 JFinal 要早一到四年,問答數(shù)量充分表明JFinal是OSChina最活躍的項目
相關鏈接:http://www.oschina.net/question/tags?catalog=1
2:git.oschina.net 上 fork、star、watch 數(shù)據(jù)全部排名***
相關鏈接:http://git.oschina.net/languages/Java
3:按瀏覽數(shù)量在所有程序語言的web框架排名第二
相關鏈接:http://www.oschina.net/project/tag/127/webframework
4:git.oschina.net 與 JFinal 相關開源項目 164 個
相關鏈接:http://git.oschina.net/search?utf8=%E2%9C%93&search=jfinal&group_id=&project_id=
5:與 JFinal 相關博客 593 篇
相關鏈接:http://www.oschina.net/search?scope=blog&q=jfinal
然而 JFinal 從未停止過極速化的腳步,JFinal 2.0 繼續(xù)專注于極速開發(fā),將極速進行到底! 從控制層到業(yè)務層再到Model層,以及未來的在View層一直極速下去!以下是本次版本升級的主要功能:
一、極速化業(yè)務層 AOP 支持
JFinal 2.0 對業(yè)務層AOP提供了極速化支持,成為本星球***個支持極速加特效的MVC + ORM + AOP 框架,只需 Duang.duang(target) 即可添加特效,以下是代碼示例:
1 2 3 4 |
|
只需要通過 Duang.duang(target, interceptors) 即可為任意目標組件極速添加特效。當然,還有更多愉快的用法,例如:
1 2 3 4 5 |
|
以上是JFinal粉絲們一直鐘愛的控制層攔截器用法,現(xiàn)在此用法可用于業(yè)務層,除此之外,還提供了攔截器注入用法,可以在無侵入 target 的同時為其添加特效,target 可以完全不知道 AOP 的存在:
1 2 3 4 5 6 7 |
|
JFinal 2.0 全程 AOP 支持,并沒有引入 IOC 容器,從而也不需要引入與 IOC 容器相配套的一坨坨 XML,不需要花費精力去碼XML,即可愉快地玩耍。在 SSH 時代到處是一坨坨的 XML 累到死,然而并沒有什么卵用!
二、極速化 redis 支持
1 2 3 4 |
|
代碼量依然少到***,但又不失功能的完備,hash、set、zset、list 的 API 保持了 redis 原有的命名,使學習成本降至***。RedisPlugin 可同時支持多個 redis 實例,只需要指定cacheName即可:
1 |
|
三、極速化 ActiveRecord 復合主鍵支持
1 2 3 4 5 6 7 8 |
|
支持任意多個復合主鍵,不局限于兩個主鍵,JFinal 會自動進行復合主鍵數(shù)量判斷,避免主鍵數(shù)量不符時出錯。
四、極速化 Model 多數(shù)據(jù)源多table支持
當不同數(shù)據(jù)源中的相同表結(jié)構(gòu)的 table 需要共享同一個 Model時,本特性非常有用,用法依然極速:
1 2 3 4 |
|
此特性用于多數(shù)據(jù)源的多table共享同一個Model的情況,如果Model唯一對應某個數(shù)據(jù)源的某個table,數(shù)據(jù)源的切換是自動且透明的。本功能實現(xiàn)僅用了 6 行代碼,JFinal 架構(gòu)可擴展性就是這么碉堡。
五:極速化 i18n 支持
1 2 3 4 5 6 7 8 9 |
|
立足于實踐,對 i18n 進行了全面增強,更加極速的用法詳見 JFinal 手冊。
有朋友在說, JFinal 2.0 加了這么多特效,還讓不讓 SSH 們有心思繼續(xù)堆 XML 了?。繘]辦法,以下還有更多特效繼續(xù)沖擊:
JFinal 2.0 changelog:
1:極速化業(yè)務層 AOP 支持
2:極速化 redis 支持
3:極速化 ActiveRecord 復合主鍵支持
4:極速化 Model 多數(shù)據(jù)源多table支持
5:極速化 i18n 支持
6:ActionInvocation 更名為 Invocation
7:ClearInterceptor更名為Clear,并增強功能,支持移除指定的攔截器,刪掉ClearyLayer
8:添加 Model.findFirstByCache(...)、Db.findFirstByCache(...),方便對單個對象進行緩存,省時省力省代碼
9:Model.findById 帶String columns 參數(shù)的方法更名為 findByIdLoadColumns
10:刪除 Db.findById 帶String columns 的方法,可用 Db.findFirst 代替
11:改進 Validator,添加系列方法支持 urlPara 驗證。添加setDatePattern(...)方法可指定Date的pattern
12:Db.batch(...) 系列方法添加事務及嵌套事務支持
13:添加 Config.isInTransaction() 方法
14:EncryptionKit 更名為 HashKit,并添加鹽值生成方法generateSalt()
15:改進 Tx 攔截器,放行 ActionException,便于 renderError 正確響應 error code
16:添加 Sqls 工具類,用于加載和使用外部 sql 文件,例如:User.dao.find(Sqls.get("findAll"));
17:ActiveRecord 添加 SqlServerDialect 支持 SqlServer 數(shù)據(jù)庫
18:添加 Controller.getParaValuesToLong(String)方法
19:添加 OreillyCos.setFileRenamePolicy(...) 支持自定義上傳文件重名時的更名策略
20:改進 ActionMapping,在 actionKey 重復時終止啟動而非輸出警告,優(yōu)化Action映射,進一步提升系統(tǒng)啟動速度
21:TableBuilder 重構(gòu),進一步減少代碼量、提升性能,提高可讀性
22:添加 com.jfinal.ext.kit.ElResolverListener 支持 weblogic 等容器注冊 EL增強
23:CacheInterceptor 添加 JsonRender 支持
24:去掉了 Render 類中所有方法的 final 關鍵字,更加便于擴展自定義 render
25:添加 PathKit.setRootClassPath(...) 方法,便于在如Resin這類容器下無法自動探測class目錄時使用
26:JsonKit、JsonRender 默認轉(zhuǎn)換深度增大到 15 層
27:添加 DbKit.removeConfig(...) 方法,便于動態(tài)管理多數(shù)源
28:改進 JettyServer 在啟動過程中允許拋出異常終止啟動并退出 JVM
29:改進 ActionException 在 renderError(...) 時支持 viewPath
30:移除 SpringPlugin
31:改進 PropKit,對多線程更加嚴格,讓 PropKit 的重度使用者以及有代碼潔癖工程師更加順爽
32:改進 Controller,urlPara 轉(zhuǎn)換錯誤由 500 error 改為 404 error
33:添加 Controller.checkUrlPara(...) 系列方法,支持嚴格 url,避免出現(xiàn)多余 urlPara
34:Tx 攔截器開放 getConfigWithTxConfig() 方法,方便擴展自定義事務攔截器
35:改進OneConnectionPerThread支持事務以及嵌套攔截
36:TxByActionMethods 更名為 TxByMethods,可用于攔截控制層于業(yè)務層
37:刪除 Controller、Constants 中與 i18n 有關代碼
ONE MORE THING: jfinal.com 極速開發(fā)平臺正在構(gòu)建中,為答謝JFinal粉絲一直以來的支持,JFinal 2.0 發(fā)布之際,暫時開放***批用戶注冊,搶注 JFinal 極速開發(fā)社區(qū)賬號,成為本星球***個極速開發(fā)社區(qū)資深骨灰級會員,享受極速之快感,共同開啟極速開發(fā)時代,永載極速史冊!只需猛擊這里:http://www.jfinal.com/reg