jfinal1.9升级3.1


简页上线一年多了,后端一直沿用的两年前的架构(主要都在优化前端功能,算是轻后端吧),使用的还是jfinal1.9 最近抽点时间升级到了3.1版本  记录一下遇到的问题。

一、配置变更

路由的

routes.setBaseViewPath("/ttt");//相对于webapp目录也就是webapp/ttt
routes.add("/u", UserController.class);

需要注意配置,模版存放的真实路径是配置的BaseViewPath,加
routes.add("/path",X.class);里的/path,再加上 render("aa.html");里的模版,也就是/ttt/path/aa.html

过滤器入参类型有变化,改为新的就行了,方法基本没变,有变化的微调既可

Validator里的字符串验证validateString方法调整了参数,直接去掉多余的参数就可以了

二、模板

之前使用httl 模版,jfinal3.1 自带模版已经很强大了,替换改动很小只需要将
${}直接替换为#()就行了httl里的for需要指定配置的类型,jfinal自带模版不需要,可直接删除

html模版页面里原来使用了laytpl,语法上和jfinal自带的语法有冲突  都使用了#if()的方式,不处理会报错页面不显示,处理方法是在对应的js模板最外层加上jfinal模板的#[[  ]] 不处理包涵的代码

三、数据库相关

数据库驱动由c3p0换成了Druid 起初本地测试启动后第一次登陆总是特别慢,之后就正常了,以为是配置问题,试了很久无果,上线后发现正常,怀疑数据库在远程服务器上引起的,不过之前使用c3p0没发现过。

sql可以从程序中抽离出来放在统一的地方,集中把原来写的重复的sql统一管理,确实方便。

评论区

JFinal

2017-05-22 15:31

简明扼要,没有一句多余,感谢你的分享

实践证明,从 1.9 升到 3.1 也是比较方便的

ixx

2017-05-22 16:27

@JFinal 还是Jfinal对历史版本的兼容做的好,升级无压力

JFinal

2017-05-22 17:27

@ixx jfinal 开源五年,曾经有人跨越九个版本升级到 jfinal 最新版本,仍然不用费什么力气

通常来说,如果 jfinal 改变过某些 API,一定会提供相应的解决方案

例如 jfinal 3.0 将 Constants.setBaseViewPath(...) 去掉了,但开放在了 Routes.setBaseViewPath(...) 之中,升级时改这个地方是分分钟的事,而且新开放的 API 还支持对不同的 Routes 进行配置,功能更加强大了

热门分享

扫码入社