jfinal 3.4 changelog

jfinal 3.4 changelog  共 38 条

主要涉及:数据库、模板引擎

1: 添加 TimestampProcessedModelBuilder、TimestampProcessedRecordBuilder 支持 oracle、postgresql 的 TIMESTAMP、DATE 字段类型

2: OracleDialect 启用 TimestampProcessedModelBuilder 与 TimestampProcessedRecordBuilder 支持 oracle 的 TIMESTAMP、DATE 字段类型

3: SqlServerDialect 两个 fillStatement 方法添加对 java.util.Date 的分支判断,issue:http://www.jfinal.com/feedback/2667

4: 改进 TableBuilder, 支持 oracle 的 TIMESTAMP、DATE 字段类型

5: 改进 MetaBuilder,支持 oracle 的 TIMESTAMP、DATE 字段类型

6: DbPro 中 private 的 paginate、batch 方法改为 protected,便于通过 IDbProFactoy 扩展

7: DbPro 两个 batch 方法添加对 java.util.Date 的分支判断

8: Model 中的 getTable()更名为_getTable(),_getTable()、_getModifyFlag() 改为 protected 可见性

9: Model.getUsefulClass() 更名为 _getUsefulClass()

10: Model.keep() 方法中添加一处 null 判断,支持无数据源场景下使用

11: 改进 Generator 中 Engine 初始化方式,避免多数据源下多次调用生成器时异常: tio作者提出

12: 添加对 postgresql 的 jsonb 支持

13: Json 中的 defaultDatePattern 初始值由 null 改为 "yyyy-MM-dd HH:mm:ss", JFinalJson 中删掉 datePattern 属性,

    升级时要注意配置:JsonManager.me().setDefaultDatePattern(null) 或者具体值

14: Enjoy 的 Map 定义表达式中的 key 值添加对 int long float double true false null 的支持

    例子:#({1 : '自买', 2 : '跟买'}.get(type = 2) ?? '-')

    例子:#set(map = {1 : "aaa", 2L : "bbb", 3.14: "ccc", true : 123, null : 456})

15: Enjoy 添加 String、Integer、Double、Float、Long、Short、Byte 添加 toShort() toByte() 扩展方法

16: TemplateRender 中 Engine 属性改为 protected

17: MethodKeyBuilder、SharedMethodKit 中生成 key 的 hash 添加对 null 值的处理,避免在方法重载且第一次访问使用null参之后,第二次调用重载方法时的异常

18: TemplateRender 避免对 ClientAbortException、EofException 做日志

19: Index 表达式支持 Map 类型时 key 值为 null

20: Map 定义初始化表达式的 key 支持 int、long、float、double、true、false、null 常量值

21: Scope.exists(key) 方法添加对于 sharedObject 的判断

    return sharedObjectMap != null ? sharedObjectMap.contains(key) : false;

22: engine 支持baseTemplatePath 设置为 null

23: 添加 setToClassPathSourceFactory 用于快捷配置 ClassPathSourceFactory

24: Template 添加 render(Map, File) 与 render(Map, String) 方便渲染数据到文件中,常用于代码生成场景

25: Unary 添加 toConstIfPossible() 优化性能

26: RandomDirective 优化性能

27: NowDirective.setExrpList 更正为 setExprList

28: ElKit.getEngine() 添加 static 

29: 添加 Constants.setConfigPluginOrder(),用于指定 configPlugin() 被调用次序

30: CaptchaRender 更换字体数组,解决某些 linux 版本由于缺少字体文件引发的验证码乱码问题

31: 改进 PathKit.getRootClassPath() 支持 linux 非 web 环境下正确获取

32: Controller getParaToInt 与 getParaToLong 添加对  value[i] 的空字符串判断, "" 转成 null 值,小木提出

33: core 包下的 converter 添加 ByteConverter 与 ShortConverter 转换

34: 优化 Scanner 性能

35: RedisPlugin Cache 添加 flushDB() flushAll()

36: 添加 Routes.setClearAfterMapping(),便于在系统启动后仍然可以使用 Routes 内的数据

37: PathKit.isAbsolutelyPath() 更名为 isAbsolutePath()

38: Captcha 添加无参构造方法,支持 redis 反序列化



评论区

如易

2018-05-09 15:56

前排点个赞 初学 抢个前排的座

flyinkeke

2018-05-10 00:45

留名

杜福忠

2018-05-10 09:04

还有小板凳~
特别喜欢新增加的这个方法, 插件式开发, 能省很多代码了哈哈
/**
* 配置是否在路由映射完成之后清除内部数据,以回收内存,默认值为 true.
*
* 设置为 false 通常用于在系统启动之后,仍然要使用 Routes 的场景,
* 例如希望拿到 Routes 生成用于控制访问权限的数据
*/
public void setClearAfterMapping(boolean clearAfterMapping) {
this.clearAfterMapping = clearAfterMapping;
}

haoran789

2018-05-11 09:39

加油

JackZeng

2018-05-11 11:06

支持shrio么? 昨天下午到昨天凌晨各种找,各种尝试。今天上午一上午因为这个停了工作了。。。。

JackZeng

2018-05-11 11:06

百度也是个坑,全是2。0以前的。

老武

2018-05-11 16:46

以前的changelog都是悄悄到服务器下载的

JFinal

2018-05-11 17:22

@老武 机智如你 ^_^

北流家园网

2018-05-13 15:29

我不懂是不是下了个假的3.4,现在用着有几个问题:
1、模板修改后,无法自动加载,已配置me.setDevMode(true);
2、Model 中的 getTable()更名为_getTable(),_getTable()、_getModifyFlag() 改为 protected 可见性。但我替换3.4后,还是getTable()。

JFinal

2018-05-13 16:33

@北流家园网 应该是你项目中的老版本 jfinal 依赖还在,新版本没有生效,还有一个可能是你以前在本地自行打包安装了老版本的 jfinal 3.4

北流家园网

2018-05-14 13:49

@JFinal 波总说得对,现已解决,谢谢!

netwild

2018-05-15 11:31

@JFinal 老大,Log的这个需求啥时候加上啊,http://www.jfinal.com/feedback/3116

JFinal

2018-05-15 16:15

@netwild 后来有不少人反馈给我说 logback 有不少坑,还不如 log4j 好使。 此外,日志一般用于记录项目的异常,这就意味着如果你的项目 bug 很少,就跟本不会有多少日志

日志少的话,性能就不是问题,话说回来 log4j 的性能已经不错了

再者现在好多令人兴奋的新功能还等着上呢,一时就没有在关注这个新功能了,你可以选利用 log 模块的接口自己扩展一下 logback 出来用用,记得分享出来啊

热门分享

扫码入社