JFinal 3.0 changelog

JFinal 3.0 changelog

1:添加 JFinal Template Engine,将极速开发贯彻到 View 层

2:增强 active record 模块,添加 sql 动态生成与管理功能,三个 API 搞定 mybatis 的核心功能

3:增强 Routes,添加 addInterceptor(),可为每组 Controller 统一配置 Interceptor

4:增强 Routes,添加 setBaseViewPath(),可为每组 Controller 统一配置 baseViewPath

5:增强 render 模块,支持所有 Controller.renderXxx() 方法的定制,淘汰了原来的三个接口

6:添加 Controller.renderToString(),在控制器中利用模板引擎生成 email、短信或 HTML片段等内容,极致便捷

7:添加 QrCodeRender 以及 renderQrCode() 方法,极速生成二维码

8:添加 captcha 验证码模块,引入全面的扩展接口,提升安全性

9:添加 Cron4jPlugin,极速支持任务调度

10:添加Model.dao() 方法,解决小白误用 dao 所带来的线程安全问题

11:增强 JFinalJson 添加对 primitive 数组、Enumeration、Collection 类型支持

12:添加 MixedJsonFactory,使用 JFinalJson 转 json,使用 fastjson 做反向序列化转 object

13:添加 Controller.renderTemplate(),支持主视图为其它模板引擎时混合使用 JFinal Template Engine

14:去掉 Dialect.replaceOrderBy() 中对 orderby 的 replace操作,解决paginate方法无法支持部分复杂 order by 子句问题

15:添加 JFinal.start(String webAppDir, int port, String context)方法,更好地支持 IDEA 环境下使用集成的jetty启动项目

16:添加 Controller.getHeader(),有利于微信小程序开发

17:添加 DbKit.getConfigSet(),便于更深入的扩展开发

18:增强 ActionReporter,支持指定输出方式,添加 url 输出,以及指定参数最大输出长度

19:StrKit、HashKit 添加 slowEquals 方法用于密码验证

20:Model.getConfig() 的可见性由 private 改为 protected

21:CacheInterceptor 的 buildCacheName、buildCacheKey 改为 protected 便于扩展

22:改进 HashKit.generateSalt(),添加 generateSaltForSha256()与 generateSaltForSha512()

23:添加 Generator.setGenerateChainSetter() 方法,支持 baseModel 生成链式 setter 方法 

24:改进 TableBuilder,去掉 build() 中判断 size 为 0 的优化,便于探知据库是否连接成功

25:改进 Redis Cache.lrange(),处理 jedis 返回 null的情况

26:增强,添加Model.filter() 方法,便于实现过滤 XSS 脚本这类功能

27:增强 Ret,改为继承自 HashMap,并添加 ok() fail() 系列方法,有利于 javascript 下的 if(ret.isFail) 判断

28:添加 JMap,便于快捷链式构建大量参数

29:改进 active record 模块,支持对所有 Config 进行动态管理

30:ActiveRecordPlugin 添加 addSqlTemplate()、setBaseSqlTemplatePath() 等 sql 管理有关方法

31:Model、Db 添加 getSql()、getSqlPara()、find(SqlPara)、findFirst(SqlPara) 等方法支持 sql 管理

32:TokenManager 的 new Timer 添加 true 参数,变为 demon 线程

33:ModelGenerator 中的 generateDaoInModel 改为 false,提倡 dao对象声明在 Service 层中

34:JettyServer.changeClassLoader() 中添加 webApp.setClassLoader(jfcl),解决热加载时单例问题

35:增强 ModelRecordElResolver,IBean类型先尝试 getter 方法,getter不存在则调用get(String)方法

36:增强 CacheInterceptor、RenderInfo,便于扩展支持更多类型 Render

37:优化 StrKit.isBlank(),并添加 getRandomUUID() 方法

38:改进 I18nInterceptor,解决 switchView 情况下 getRender() 为 null 问题,添加一个实用构造方法

39:改进 TypeConverter,加强对 Timestamp 的支持范围

40:改进 ActionException,保留类型转换 404 异常的 errorMessage

41:改进 ActiveRecordPlugin,oracle 默认事务级别设置为 TRANSACTION_READ_COMMITTED

42:改进 Db、DbPro,添加 queryShort 系列方法

43:改进 JsonRender,支持 renderJson(null)

44:添加 Validator.getActionMethodName() 方法

45:XmlRender 改为使用 JFinal Template Engine 实现

46:HttpKit.post() 支持 data 值为 null 的情况

47:去掉 JFinalFilter final 修饰,便于定制扩展

48:删除 Constants.setBaseViewPath(),已被 Routes 完全取代

49:com.jfinal.token.Token.java 两个构造方法改为 public,便于扩展

50:Page 添加默认构造方法支持 fastjson 这类第三方工具的反向序列化,isLastPage() 方法的逻辑改为 pageNum >= totalPage,添加 toString()方法


评论区

混混

2017-01-23 08:35

不是专职JavaWeb开发的,从JSP->Servlet+Bean->Strut1->Strut2->SSH->SSM走过来。去年年底入手JFinal,感觉JFinal的框架确实比那些传统的框架方便了很多。准备到中国的传统新年了,预祝JFinal发展也来越好。

vikingSun

2017-01-23 13:30

厉害!666

ted668

2017-01-23 13:54

牛逼lity

_me

2017-01-23 16:59

牛逼,学习中....

JFinal

2017-01-23 19:18

@dongcb678 感谢支持,升级到 3.0 ,先玩起来

JFinal

2017-01-23 19:18

JFinal

2017-01-23 21:06

@混混 感谢你的支持

binke

2017-01-23 22:23

ManaStuDent

2017-01-24 09:22

学习中。

dongcb678

2017-01-24 11:06

JFinalUIB已经升级到3.0

JFinal

2017-01-24 11:11

dongcb678

2017-01-24 11:40

@JFinal 波总 我扫码加入俱乐部,扣了钱,俱乐部是怎么进的?

dongcb678

2017-01-24 11:42

@JFinal 好吧 我懂了 下载了已经

JFinal

2017-01-24 11:49

@dongcb678 系统会自动发私信给你,查收一下

dongcb678

2017-01-24 17:30

@JFinal jfinal-club代码下载会经常更新不?

JFinal

2017-01-24 18:01

@dongcb678 一直更新是肯定的,时间上不确定

hellochen

2017-01-25 11:10

模版引擎的命令是以#开始,可是idea开发中,比如.sql文件等很多文件#是注释的意思

JFinal

2017-01-25 13:29

@hellochen 没有关系, just do it

Romeo

2017-01-26 09:29

12 fastjson

板砖哥

2017-02-04 17:26

更新的确很多,非常实用 @jFinal V5

zky314

2017-02-05 15:51

改变很大,改动都很贴心,用起来更方便了

pipicat918

2017-02-06 10:13

恭喜3.0发布,过年回来马上先试试!

杜福忠

2017-02-06 11:29

这条完美解决了我当前代码冗余的问题:
20:Model.getConfig() 的可见性由 private 改为 protected

JFinal

2017-02-06 21:50

@杜福忠 jfinal 后续版本会打磨得越来越好,根据海量的用户反馈,不断改进,还请多多关注社区,多多提建议

逍遥一生

2017-02-07 15:17

完全沉迷在jfinal中,现在的项目就是采用jfinal开发的,真的很好用,JFinal大 法好,真 善 美!

热门分享

扫码入社