JFinal 4.9.03 发布,添加路由扫描功能

    JFinal 4.9.03 主要新增了路由扫描功能,开发更快更方便。

    以往未添加路由扫描功能主要有如下原因:

    一是未找到支持 routes 级别拦截器以及 baseViewPath 配置的设计方案。

    二是未找到支持拆分路由的方案。

    三是性能损失降低开发体验,热加载启动速度慢。

    四是有一定的安全隐患。

    本次 jfinal 4.9.03 所使用的方案解决了上述所有问题,找到了最优解。

    新功能在周末开发完成,已经推送至 maven 中心库,现在就可以使用了。

    jfinal 官网已经将 jfinal-club、jfinal-blog、weixin-pay、jfinal-demo 等等下载资源全部改成了路由扫描用法,欢迎你来社区网站下载使用。

    路由扫描功能使用极其简单,首先是在 Controller 之上添加 @Path 注解配置 controllerPath:  

@Path("/club")
public class ClubController extends Controller {
   ......
}

    然后在 configRoute 中开启扫描:

public void configRoute(Routes me) {
    me.addInterceptor(...);
    me.setBaseViewPath(...);
    
    // 开启路由扫描
    me.scan("com.club.");
}

     如上代码所示,routes 级别拦截器以及 baseViewPath 配置功能依然被支持,路由拆分功能见 jfinal 官方文档。   

    最后,借此新版本发布与双十一来临之际,介绍一下 jfinal 俱乐部。

    jfinal 俱乐部成立于 2017 年,目的是尝试提供增值服务获取一定资金用于 jfinal 可持续发展。

    目前俱乐部会员接近 2000 人,俱乐部专享 QQ 群人数已超过 1700 人。

    俱乐部除了提供主打资源以外,还会不定期提供设计、分享、源码等视频资源下载,部分资源下载列表详见https://jfinal.com/my/club

    近期发布了一批同学们关心的技术视频,例如《enjoy设计-算法-源代码.mp4》、《jfinal-route-scan.mp4》等等。

    想学习如何开发一门语言或如何手写一个模板引擎的同学可以关注一下上述视频。

    enjoy 视频介绍了词法、语法分析中独创的 DLRD、DKFF 算法。

    俱乐部下一个重磅级专享福利项目 jfinal-admin 正在快速开发之中,很快将上线。

    该项目是一个通用的前后端开发框架,目的是实现前端后端同时极速开发。

    该项目提供了现成的内容管理、权限管理、账户管理、文件管理、图片管理等等通用功能。

    在此基础之上提供一套常用的UI 组件,用于快速搞定各类个性化 UI 开发需求。

    明天就是双十一了,这次 jfinal 俱乐部第一次尝试做一次双十一的优惠活动。

    从现在开始加入、充值、续费俱乐部会员扫码立减 ¥60 元

    在双十一买买买的时候,别忘了给自己投资一点点到 jfinal 俱乐部,回报一定是超值的 ! 

     双十一优惠传送门:https://jfinal.com/my/club


评论区

lyh061619

2020-11-11 18:07

@yxkuser 通俗点讲:我选我自由,多种选择罢了。

lyh061619

2020-11-11 18:10

@yxkuser 一般存在抵触心理,过后再回头想想,其实无非就是提供多种选择而已,不现选择适应不同人群需要,用与不用完全取决于自己。

lyh061619

2020-11-11 18:33

@JFinal 波总我顶你:提供扫描路线非但不偏反而更加实用、实现效率、性能并存,适应不同人群人,JF小而精美更加多样化。

lyh061619

2020-11-11 18:40

@qsyan 提供扫描路线非但不偏反而更加实用、自由度更广群体,即使官方不实现扫描路由,社区一样有很多人有这个需求或使用第三方不稳定的扫描路由,最后一句中肯的:使用与否完全取决用户,JF适应能力更强。

lyh061619

2020-11-11 19:04

@北流家园网 你的这个顾虑我曾有思考过这个问题,坚决然而然的选择扫描路由,完全不用担心通过controllerPath无法定位控制类的问题,除非你在controllerPath命名本来就是经常干这【张冠李戴】这个没办法,或者团队中其他成员也是也是经常干这种【张冠李戴】的事情,建议你还是用手动绑定路由【但也不是绝对接的可以通过搜索来定位控制器类】;或者是自己本来就是喜欢路由控制器绑定全局观的这种的也建议你使用手动绑定路由一目了然,不过使用手动绑定路由也存在一个小问题【因人而易】,比如我自己对代码强迫症的都要必须手动排版成金字塔排版路由样式其实没什么作为就是为了看得顺眼而已,实则在浪费时间。

SuperEric

2020-11-11 22:48

这是一篇来自于未来的版本发布,距离此文章发布还有23分钟。

JFinal

2020-11-11 23:15

@SuperEric 眼尖, 是为了置顶 ^_^

SuperEric

2020-11-12 00:09

@JFinal 哈哈,开发个置顶功能分分钟问题~

andu

2020-11-12 08:25

@杜福忠 请问这个注释怎么自动生成的?

杜福忠

2020-11-12 11:50

@andu Enjoy 模板代码生成器, 自己自定义的代码模板。 新加方法时也是快捷键复制再手动修改一下的,感觉看着还行,用起来挺舒服方便的

defier

2020-11-14 21:44

我个人觉得model和表的映射关系也需要自动扫描,我们自己一直在用之前的jfinal_ext扩展插件包,model加上@tableBind注解就行了。@JFinal 你说的自动生成model,说句实话,我从来不用,自己手工新建一个model不会慢啊。我看了下你写的jfinal_blog里面的model ,每个model都有一个baseModel,每个字段都写了get/set方法,model的get/set方法不是不用写了吗?你这种做法,多了好多baseModel类,不知道为何?

JFinal

2020-11-14 22:03

@defier 如果不需要生成 baseModel , 扫描会更好。 而如果生成 baseModel, 顺便将 _MappingKit.java 生成了也就省去了扫描这个事,省去了学习成本。

baseModel 是比较大的一个需求,自动生成 getter/setter 方法首先是消除了手写的工作量,也消除了手写可能出现错误的,在使用的时候 eclipse idea 这类工具有代码提示

很多人习惯了使用 getter setter

defier

2020-11-14 22:18

@JFinal 大部分情况下不会用baseModel 吧?不过这个看自己的项目,我们从来不用。如果大部分情况下不用baseModel ,那就可以提供自动 扫描model的功能会更好,学习成本其实不高,自己去添加映射关系还更麻烦。我们的实现方案要考虑常态的用法,而不是考虑少部分人或者少数情况下的用法。

JFinal

2020-11-14 22:20

@defier 用 baseModel 的人特别多, 我也没想到这个功能这么有需求

由于是生成器生成的,用起来省事,我建议你试一试,我以前也不用,现在必用,很好用

eclipse 的提示功能,避免属性, 而且输入也加快了

defier

2020-11-14 22:26

@JFinal 我擦。哈哈

Jimmy_f

2020-11-16 11:14

波总,这个版本有离线文档下载吗

JFinal

2020-11-16 11:34

@Jimmy_f jfinal 俱乐部有提供离线文档的生成器

海哥

2020-11-17 17:28

@北流家园网 @琴海森林 @杜福忠 试试使用 Jboot 看看,不仅仅能定位到Controller,而且还执行执行的行号。https://jfinal.com/share/2231

北流家园网

2020-11-19 10:37

@海哥 定价太高,不想用

海哥

2020-11-19 14:54

@北流家园网 Jboot 从来没收费过

北流家园网

2020-11-21 22:01

@海哥 不是要12999吗?

海哥

2020-11-22 16:32

@北流家园网 12999 是 JbootAdmin,不是 Jboot。

rocker18

2020-11-30 15:14

如果这么配置的话,原先例如:add("/role", RoleController.class, "role") 最后这个role配哪里呢?

JFinal

2020-11-30 15:21

@rocker18 @Path(value = "/role", viewPath = "role")

你举的例子由于两个参数值相同,所以可以省略为:
@Path("/role")

用法其实根 add(...) 一样,只不过 add 中间的 controllerClass 不用写

rocker18

2020-11-30 18:45

@JFinal 已在文档中查到了,感谢老大这么牛逼的功能!

热门分享

扫码入社