Jfinal 2.1版本,JFinalConfig里自动配置路由的代码实现,直接晒代码
2019独角兽企业重金招聘Python工程师标准>>>
背景:
1、我使用的jfinal2.1;
2、我喜欢用@ActionKey("/admin/index")这一个功能,代码复制性强,不喜欢在controller的类上加注解,不好打理;
3、不想每次新增一个controller类都要在JFinalConfig的public void configRoute(Routes me),手动加入,希望代码自己去找,就可以了;
4、其实,我主要就是用它加载一下controller类文件,我不关心【controllerkey】叫什么名字,因为,我用【actionKey】开发项目;
参考代码:
public class MyConfig extends JFinalConfig {//不相关的代码,这里就不显示了/*** 配置路由*/public void configRoute(Routes me) {//【IndexController.classs】该类可以自己定义,作用,带头大哥,出卖所有controller的位置。String filePath = IndexController.class.getResource("").getPath();File fileDir = new File(filePath);//包名String controllerPackage = fileDir.getAbsolutePath().substring(fileDir.getAbsolutePath().indexOf("com")).replace("\\", ".");//包内的controller类名的集合List<String> controllerNames = new ArrayList<String>();if(fileDir.isDirectory()) {File[] list = fileDir.listFiles();for(File file : list) {String fileName = file.getName();//屏蔽内部类,比如:IndexController$1.classsif(fileName.indexOf("$") == -1) {controllerNames.add(fileName);String controllerName = fileName.substring(0,fileName.indexOf(".class"));String controllerKey = StrKit.firstCharToLowerCase(controllerName);try {@SuppressWarnings("unchecked")Class<Controller> controllerClass = (Class<Controller>) Class.forName(controllerPackage+"."+controllerName);//jfinal载入controllerme.add(controllerKey, controllerClass);} catch (ClassNotFoundException e) {e.printStackTrace();}}}}}
}
当然上面的内部方法,可以封装成一个工具类。起个名字叫 SubRoutes extends Routes
以后代码JfinalConfig的配置路由代码就可以这样写
public void configRoute(Routes me) {me.add(new SubRoutes(AdminIndexController.class));//后台路由--加载后台的所有controller类me.add(new SubRoutes(WebIndexController.class));//前台路由--加载前台的所有controller类
}
当然,这里
AdminIndexController和WebIndexController不在同一个包里面,是分开的,不在同一个文件夹
打完收工。
转载于:https://my.oschina.net/u/2424312/blog/602428
Jfinal 2.1版本,JFinalConfig里自动配置路由的代码实现,直接晒代码相关推荐
- Spring Boot常见企业开发场景应用、自动配置原理结构分析
读者应具备: Spring SpringMVC服务器端开发基础 Maven基础 本篇主要介绍Spring Boot在企业开发中常见场景的使用.以及Spring Boot的基本原理结构. 以下为本篇设计 ...
- Spring Boot(03)——自动配置
Spring Boot 自动配置 Spring Boot的自动配置功能会根据Classpath中的Class为我们自动创建相应的bean.比如当classpath下存在MongoClient.clas ...
- nacos动态路由配置(二)-微服务启动自动配置网关路由
经过上一篇我们发现nacos通过配置动态路由routes-api-gateway.yaml配置json,监听动态路由变化即可实现动态路由,非常的银杏化. 那么有的小伙伴发现配置json也比较麻烦,有没 ...
- java快速注释怎么配置_详解如何在低版本的Spring中快速实现类似自动配置的功能...
在 Spring 4 后才引入了 @Conditional 等条件注解,它是 Spring Boot 中实现自动配置的最大功臣! 那么问题来了:如果我们还在使用 Spring 3.x 的老版本,这时候 ...
- 关于IPv6自动配置地址 RA里的A、M、O标记位(纯理论无实验)
ipv6的地址自动配置有两种方式,分别是SLAAC与DHCPv6,其中DHCPv6还分为有状态和无状态,如图: 今天我们要学的就是ICMPv6 RA(Router Advertisement)包里面的 ...
- Spring Boot 面试杀手锏:自动配置原理
欢迎关注方志朋的博客,回复"666"获面试宝典 不论在工作中,亦或是求职面试,Spring Boot已经成为我们必知必会的技能项.除了某些老旧的政府项目或金融项目持有观望态度外,如 ...
- SpringBoot面试杀手锏——自动配置原理
欢迎关注方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/u014745069/ article/details/83820511 引言 不论在工作中,亦或 ...
- SpringBoot实战之SpringBoot自动配置原理
www.cnblogs.com/leihuazhe/p- SpringBoot 自动配置主要通过 @EnableAutoConfiguration, @Conditional, @EnableConf ...
- SpringBoot_配置-@Conditional自动配置报告
前面我们通过分析HttpEncodingAutoConfiguration,给大家讲解了一下自动配置的原理,那么在自动配置的时候呢,就是这个自动配置要能够生效,他有一些判断,conditional这些 ...
最新文章
- C++面试题:list和vector有什么区别
- 只需5分钟即可启动并运行分层架构:: Spring Boot第1部分
- centos开发环境安装的备忘
- js中变量作用域的小理解
- (Matlab问题解决)运行matlab程序后,工作区不能显示变量
- 【kafka】kafka offset 的存储 (存储zookeeper 与 存储 kafka)
- nettry 入站事件如何传递到下一个handler
- 在Ubuntu 18.04上安装PostgreSQL 11和PgAdmin4
- LeetCode刷题——167. 两数之和 II - 输入有序数组
- 关于参数的写法规则,参数引用几种写法
- 异贝,通过移动互联网技术,为中小微实体企业联盟、线上链接、线上线下自定义营销方案推送。案例7
- 【搬运】各种知乎段子
- 手机、电脑录制内部声音的方法
- java通过txt读取迷宫地图_java寻找迷宫路径的简单实现示例
- 移动硬盘做pe启动盘
- 猎企如何制定合理的数据战略?(附数据迁移三大注意点)深度干货
- 建议65:总是处理未捕获的异常
- 让人又爱又恨的C语言
- sql子表求和在总表中显示,并参与搜索
- 日野汽车数据作假召开记者招待会