刚把手上项目从jfinal1.9升级到jfinal4.9.01,基本平滑,主要做了几点小修改,本来没啥好分享的,或许也有老用户担心不兼容,放弃升级,在这里算做个成功的试验。
分享下:
ClearInterceptor,原版本com.jfinal.aop.ClearInterceptor=>com.jfinal.aop.Clear
Interceptor中public void intercept(ActionInvocation ai) =>public void intercept(Invocation ai) {
com.jfinal.aop.ClearLayer干掉,新版没有了
com.jfinal.config.Routes中getEntrySet()=>getRouteItemList(),Route中直接getControllerKey()、getControllerClass()
Validator中validateString直接干掉第二个boolean参数
JFinalConfig继承类中public void configConstant(Constants me),增加一句me.setViewType(ViewType.FREE_MARKER);//因原项目使用freemarker模版引擎
dao.findById中,以前支持(id,"字段名"),现在改为findByIdLoadColumns(id,"字段名")
最后,引用最新的UndertowServer,导入jar包、配置文件,老版本com.jfinal.core.JFinal.start("WebRoot", 80, "/", 5);删除UndertowServer.create(XXX.class, "undertow.properties").start();
@杜福忠遇到一真正Jfinal深度研究员,提醒漏掉了文件上传类中的方法:com.jfinal.upload.UploadFile getSaveDirectory()=>getUploadPath()
还有个Logger就不说了,按自己要求改下。
补充下:没增加第6点中的内容时,遇到个错误The multiline comment start block "#--" ,因为默认用Enjoy的引擎去解析了。
com.jfinal.template.stat.ParseException: The multiline comment start block "#--" can not match the end block: "--#" Template: "/index/index.html". Line: 8 at com.jfinal.template.stat.Lexer.scanMultiLineComment(Lexer.java:366) at com.jfinal.template.stat.Lexer.scan(Lexer.java:71) at com.jfinal.template.stat.Parser.parse(Parser.java:76) at com.jfinal.template.Engine.buildTemplateBySourceFactory(Engine.java:167) at com.jfinal.template.Engine.getTemplate(Engine.java:148) at com.jfinal.render.TemplateRender.render(TemplateRender.java:62) at com.jfinal.core.ActionHandler.handle(ActionHandler.java:111)
这 23 个版本中, 多数版本改进升级的功能与特性都在 40 至 50 个,能跨越这么多个版本升级的原因是我在 jfinal 俱乐部视频中反复强调的:极简设计
jfinal 在 9 年前就坚持的极简设计,其 Handler、Interceptor、Controller、Render、Plugin 内核结构 9 年不变,轻松应对这 9 年来各种千奇百怪的需求
你本次跨 23 个版本升级 jfinal,其中第一、第三条本质是改类名:ClearInteceptor 改为 Clear
第二条也是改类名:ActionInvocation 改为 Invocation
第六条是改默认配置
绝大部分改动是改名类或方法名,这种改动 eclipse 会有错误提示,升级起来很安全,不会漏掉
真正切实有兼容性影响的是第 7 条中 dao.findById 改为findByIdLoadColumns(id,"字段名")
第 8 条不叫改动,是将原来的 jetty-server 换成使用 jfinal-undertow
点赞加收藏