加精

JFinal-3.6 - 3.8 changlog

  • • 发表于2019-04-22 22:17:02.0
  • • 作者 小徐同学
  • • 745 次浏览
  • • 0 条评论
  • • 最后编辑时间 2019-04-22 22:20:25.0
  • • 来自 [JFinal]

原创声明:本文为作者原创,未经允许不得转载,经授权转载需注明作者和出处

jfinal 3.8 changelog:

1:AopFactory 修复子类没有属性时,超类无法被注入的问题

2:Aop 中的有关配置的 API 转移至 AopManager

3:Constants 中添加 setInjectSuperClass(boolean) 配置是否对超类进行注入

4:Validator 添加注入功能

5:Cron4jPlugin 添加 getTaskInfoList(),便于扩展

6:Callback 优化性能,并去除 injectTarget 机制

7:Invocation 中去除 useInjectTarget


jfinal 3.7 changelog:

1:增强 Aop 模块,支持任意层次数的注入,完美支持循环依赖

2:Aop 支持对超类进行注入,需要配置 Aop.setInjectSuperClass(true),默认不开启

3:PropKit 添加 useFirstFound(String… fileNames) 方法,支持配置文件优先加载策略
具体用法参考 jfinal_demo_for_maven,可在官网首页右侧下载

4:去除 AopFactory 中的 injectDepth 检测机制,已更好支持循环依赖注入

5:ControllerFactory 添加 recycle(Controller) 方法,方便用户自定义 controller 回收策略

6:增强 MetaBuilder,解决 Oracle 驱动 bug:生成重复主键

7:增强 DataDictionaryGenerator,解决 Oracle 驱动 bug:生成字典文件时报异常

8:Enjoy 的 FieldKit、MethodKit 添加 clearCache() 方法,便于扩展

9:Engine 添加 setEncoderFactory(…) 方法,方便定制 Encoder

10:#include 指令模板参数为变量时,提示使用 #render 指令,提升开发体验

11:ClassPathSource 找不到文件时的异常提示信息如果发生在 class path、jar 包中,
提示信息中添加 “in CLASSPATH or JAR” 文本,定位错误到 class path 与 jar
包而非文件系统目录加快排错效率


jfinal 3.6 changelog:

1:enjoy 引擎添加 #switch、#case、#default 指令,与 java 12 的 switch 新特性保持一致,既减少了代码量,又增强了功能

2:enjoy 引擎添加 #call 指令,支持调用模板函数时,函数名与函数参数动态化,进一步提升 enjoy 引擎的灵活性

3:Generator、MetaBuilder 添加生成 remarks 备注功能,需要配置:gen.setGenerateRemarks(true)

4:Controller 添加 set(String name, Object value),可替代 setAttr(…) 进一步节省代码量

5:Controller 添加 get(…) 系方法,可替代 getPara(…) 系方法,可进一步节省大量代码

6:Controller 添加 getInt(…)、getLong(…) 等系方法,可替代 getParaToInt(…) 等系方法,进一步节省代码量

7:增强 Tx 事务拦截器,在 Controller 中使用 try catch 时,可以在 catch 块中使用 render

8:Kv、Okv、Ret 添加 setIfNotBlank(…),使得 if(StrKit.notBlank(v)) kv.set(k, v)
可以改写为 kv.setIfNotBlan(k, v),进一步减少代码量。 还添加了 setIfNotNull(…) 原因同上

9:Db、DbPro 添加 getSqlParaByString(…) 方法,便于从 String 变量的模板中获取 SqlPara 对象,
在 String 变量中使用 enjoy 引擎管理 sql 的生成远远优于使用字符串拼接方式

10:Model、Db、DbPro 添加 findAll() 方便获取类似于字典 table 这样的小表数据

11:EvictInterceptor 支持多 cacheName,用逗号分隔即可:@CacheName(“a”, “b”)

12:JFinalFilter 添加对 onStart()、onStop() 回调,并针对 jfinal undertow 优化异常提示信息

13:ErrorRender 中的 String 型数据改为 byte[] 型数据,提性能。去除 flush(),避免 undertow 之下客户端
主动断开连接时的 IO 异常

14:去掉 Render 子类中的 flush() 调用,避免 undertow 之下客户端主动中断连接时的 IO 异常,减少日志输出量

15:Routes 添加 setMappingSuperClass(boolean) 配置控制器超类中的 public 方法是否被映射为 action,
默认值为 false

16:Model、Db、DbPro 中的针对多主键(联合主键) 的 findById(…) 方法更名为 findByIds(…),
deleteById(…) 更名为 deleteByIds(…) 解决 JDK 8 之下的参数类型转换异常问题

17:ActionMapping 针对 Routes.setMappingSuperClass(…) 优化映射性能,大型项目启动速度提升 200 毫秒左右

18:Model 添加 setOrPut(…) 方法,可自动判断数据是否属于数据表中的字段,如果是则添加修改标记,方便支持 update()

19:JFinalConfig 添加 onStart()、onStop() 取代 afterJFinalStart()、beforeJFinalStop(),
在减少代码输入量的同时,降低输入手误的概率。原方法被 @Deprecated 但仍然可用,方便升级兼容

20:Sql 管理模块使用的 Engine 对象添加配置:engine.setToClassPathSourceFactory(),默认将从 class path
与 jar 包中加载 sql 文件

21:改进 MethodKit、FieldGetter 放开对 getMethod()、getField() 等方法的调用

22:NestedTransactionHelpException、ValidateException 添加 fillInStackTrace() 优化性能。
消除抛异常时 Throwable.fillInStackTrace() 的耗时动作,这两个异常中的 stack 信息不会被使用,
所以没必要在 fillInStackTrace() 中进行任何操作

23:Aop、AopFactory 添加 get(Class targetClass, int injectDepth),支持指定注入深度

24:优化 AopFactory,消除为 Controller 多级注入时多余的动作,进一步减少代码量

25:Db、DbPro 添加 paginate(int, int, boolean isGroupBySql, SqlPara sqlPara),在支持 SqlPara
参数的同时还支持 boolean isGroupBySql 参数

26:Routes 添加 getRoutesList()、getControllerKeySet() 便于深度扩展,例如扩展可插拔路由功能

27:Dialect、MysqlDialect、PostgreSqlDialect 添加 forFindAll(…)

28:DataGetter 改为通过 Converter.convert(v) 进行类型转换,兼容更多 pattern 格式的日期型数据

29:com.jfinal.core.paragetter 包下所有抛出 ActionException 异常的状态码由 404 改为 400,与 controller 中保持一致

30:ParaProcesorBuilder 警告信息添加类名与方法名,便于开发过程中快速定位问题地点

31:Record 添加 getObject(…) 方法

32:Page 添加所有属性的 setter 方法,便于 fastjson 这类第三方反序列化

33:com.jfinal.plugin.activerecord.CPI 添加 getConfig(…)、getTable(…)、getUsefulClass(…),
便于扩展 active record 功能

34:DruidPlugin 的 initialSize 默认值改为 1 加快启动速度。maxActive 默认值改为 32 节省 Connection 资源

35:KeepByteAndShortModelBuilder、KeepByteAndShortRecordBuilder 避免 JDBC 将 Short、Byte 类型字段的
null 值转换为 0

36:Prop 添加 public 无参构造方法,并为属性赋予默认值,便于扩展

37:Redis.call(…) 返回值由 Object 改为泛型 T

38:jetty-server 从 2018.11 升到 2019.1

评论区(共0条评论)
0条评论
Ctrl+Enter
作者

Michael

小徐同学

帖子:40 回复:0

全栈搬运工

作者详情》
Top