14.1 极速升级

一、jfinal 3.0 之前版本的升级

jfinal 3.0 是大版本升级,此前版本升到 jfinal 3.0 请移步 14.2、14.3、14.4、14.5 小节,这几个小节中的内容极少,升级很方便。

二、jfinal 3.0 之后版本的升级

1、升级到 3.1

无需修改,平滑升级

2、升级到 3.2

IStringSource 更名为 ISource

按照 14.2 小节 升级 Ret

3、升级到 3.3

指令扩展中的 java.io.Writer 改为 com.jfinal.template.io.Writer,eclipse/IDEA 开发工具会主动给出提示

4、升级到 3.4

由于 Json 中的 defaultDatePattern 初始值由 null 改为 “yyyy-MM-dd HH:mm:ss”,JFinalJson 中删掉 datePattern 属性,所以要在 configConstant(Constants me) 中配置:me.setJsonDatePattern(null) 或者具体值

5、升级到 3.5

ISource.getKey() 更名为 ISource.getCacheKey()

6、升级到 3.6

Db、Model 针对多主键(联合主键)的 findById、deleteById 方法添加一个 ‘s’ 后缀,改成 findByIds、deleteByIds

用到 jfinal weixin 项目的 MsgController 时,需要在 configRoutes 中配置 me.setMappingSuperClass(true)

由于 jfinal 3.6 用于 sql 管理的 Engine 对象,默认配置了 engine.setToClassPathSourceFactory(),engine 将从 class path 和 jar 包中加载 sql 文件,所以如果 sql 文件以往是存放在 src/main/webapp 的需要转移至 src/main/resources 之下。如果以往配置过 arp.setBaseSqlTemplatePath(…),需要删除该行代码,或改为适应于 ClassPathSourceFactory 的配置,参考:https://www.jfinal.com/doc/6-2

7、升级到 3.8

用到 Aop 配置方法的改为使用 AopManager,例如:Aop.addMapping(…) 改为 AopManager.me().addMapping(…)

8、升级到 4.0

无需修改,平滑升级

9、升级到 4.1

无需修改,平滑升级

10、升级到 4.2

无需修改,平滑升级

11、升级到 4.3

无需修改,平滑升级

12、升级到 4.4

无需修改,平滑升级

13、升级到 4.5

默认不支持直接访问 .jsp 文件,如果需要直接访问 .jsp 文件,需添加配置:me.setDenyAccessJsp(false);

14、升级到 4.6

无需修改,平滑升级

15、升级到 4.7

无需修改,平滑升级

16、升级到 4.8

jfinal 4.8 之前的 Controller.getPara(String) 方法,在有表单域存在的时候就不可能返回 null 值,而是返回了 “” 值。jfinal 4.8 版本将之修改为与其它 getXxx 系方法一样,将 “” 处理为 null 值。

需要快速升级老项目的同学,可以引入 BaseController 并使用老版本的实现:

  1. public class BaseController extends Controller {
  2.    public String getPara(String name) {
  3.       return request.getParameter(name);
  4.    }
  5. }

这个方法的具体改变细节见 gitee.com : https://gitee.com/jfinal/jfinal/commit/edfcc0015837ab0b1e6a1f980843ab88815ec1cd

17、升级到 4.9

jfinal 4.9 对 JFinalJson.java 进行了重构,如果以前的项目通过继承 JFinalJson 类做过扩展,需要注意扩展接口有所变动,具体可以参考一下源码中有关扩展的注释,新的扩展接口使用起来比以前要方便得多。

如无上述情况可平滑升级。