本文共 668 字,大约阅读时间需要 2 分钟。
JFinal框架中的ActionMapping.buildActionMapping()方法负责将controller中的方法注解转化为路由映射,并处理相关的拦截器。以下是对该方法的详细分析:
初始化映射集合:方法首先初始化了一个空的映射集合mapping,用于存储路由信息。
生成排除方法名集合:调用buildExcludedMethodName()获取所有无参数的Controller方法名,用于过滤非路由方法。
获取拦截器管理器:通过InterceptorManager.me()获取拦截器管理实例,用于处理全局和方法级拦截器。
遍历路由规则:对于每个路由规则,获取对应的controllerClass,并生成拦截器数组controllerInters。
确定方法获取方式:判断controllerClass是否继承自Controller,决定使用getDeclaredMethods还是getMethods获取方法列表。
处理每个方法:
处理特殊路由:处理路由为"/"的特殊情况,将其映射到空字符串,支持URL参数。
处理拦截器创建:通过反射创建拦截器实例,并管理拦截器的单例存储。
该方法确保了每个controller方法正确注册为路由,并配置相应的拦截器,支持全局和方法级拦截器的使用。理解这一过程有助于深入掌握JFinal的路由和AOP功能。
转载地址:http://qzfh.baihongyu.com/