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 并使用老版本的实现:
public class BaseController extends Controller { public String getPara(String name) { return getRequest().getParameter(name); } }
这个方法的具体改变细节见 gitee.com : https://gitee.com/jfinal/jfinal/commit/edfcc0015837ab0b1e6a1f980843ab88815ec1cd
17、升级到 4.9
jfinal 4.9 对 JFinalJson.java 进行了重构,如果以前的项目通过继承 JFinalJson 类做过扩展,需要注意扩展接口有所变动,具体可以参考一下源码中有关扩展的注释,新的扩展接口使用起来比以前要方便得多。
如果项目中使用了 fastjson,最低需要版本为 1.2.68(老版本的 fastjson 有安全隐患)。
如无上述情况可平滑升级。
17、升级到 4.9.01
无需修改,平滑升级
18、升级到 4.9.02
Engine 的 setWriterBufferSize(int) 更名为 setBufferSize(int)
19、升级到 4.9.03
无需修改,平滑升级
20、升级到 4.9.04
无需修改,平滑升级。该版本只修正了 com.jfinal.plugin.redis.Cache.hgetCounter(...) 中的一个 bug。
21、升级到 4.9.05
无需修改,平滑升级。该版本在 Model、Db 中新增了一个 each 方法,新增方法不影响升级
22、升级到 4.9.06
该版本的 MetaBuilder.filter(...) 方法更名为 skip,使用逻辑没有变化。一般很少人用到这个方法,只有用到过这个方法的人才需要修改代码,并且 eclipse、IDEA 开发工具会提示修改。
23、升级到 4.9.07
无需修改,平滑升级
24、升级到 4.9.08
无需修改,平滑升级