博客
关于我
JFinal个人学习笔记之源码分析2
阅读量:329 次
发布时间:2019-03-04

本文共 668 字,大约阅读时间需要 2 分钟。

JFinal框架中的ActionMapping.buildActionMapping()方法负责将controller中的方法注解转化为路由映射,并处理相关的拦截器。以下是对该方法的详细分析:

  • 初始化映射集合:方法首先初始化了一个空的映射集合mapping,用于存储路由信息。

  • 生成排除方法名集合:调用buildExcludedMethodName()获取所有无参数的Controller方法名,用于过滤非路由方法。

  • 获取拦截器管理器:通过InterceptorManager.me()获取拦截器管理实例,用于处理全局和方法级拦截器。

  • 遍历路由规则:对于每个路由规则,获取对应的controllerClass,并生成拦截器数组controllerInters。

  • 确定方法获取方式:判断controllerClass是否继承自Controller,决定使用getDeclaredMethods还是getMethods获取方法列表。

  • 处理每个方法:

    • 跳过排除方法或有参数的方法。
    • 检查方法访问权限,跳过非公共方法。
    • 生成拦截器并处理ActionKey注解,构建actionKey。
    • 创建Action对象并存入映射,避免重复路由。
  • 处理特殊路由:处理路由为"/"的特殊情况,将其映射到空字符串,支持URL参数。

  • 处理拦截器创建:通过反射创建拦截器实例,并管理拦截器的单例存储。

  • 该方法确保了每个controller方法正确注册为路由,并配置相应的拦截器,支持全局和方法级拦截器的使用。理解这一过程有助于深入掌握JFinal的路由和AOP功能。

    转载地址:http://qzfh.baihongyu.com/

    你可能感兴趣的文章
    python一维数组 提取_python – 如何从numpy中的1维数组中提取零维切片
    查看>>
    python三大库之--numpy(一)
    查看>>
    python三大库之--numpy(二)
    查看>>
    python上的字无效字符_标识中的无效字符
    查看>>
    python下用decode和encode 中文转码
    查看>>
    Python下调用Linux的Shell命令
    查看>>
    Python接口自动化测试实战系列
    查看>>
    python下载_安装_配置_以及第一行python程序---python工作笔记009
    查看>>
    Python不协调机器人消息.内容
    查看>>
    Python与C#之间内存共享互传信息
    查看>>
    python与c语言混合编程_你试过C语言和Python一起混合编程吗?两者相加不是已经无敌了!...
    查看>>
    python与excel
    查看>>
    Python与Excel的完美邂逅:深入浅出,手把手教你轻松玩转Excel数据操作
    查看>>
    python与flask_Python编程中flask的简介与简单使用
    查看>>
    python与图灵机器人交互(WXPY版本)
    查看>>
    python与运算符_python运算符
    查看>>
    python两个列表获取交集,并集,差集
    查看>>
    python两个字典合并,两个list合并
    查看>>
    Python两个版本共存时,命令行升级pip
    查看>>
    Python两个版本共存时,怎么验证是否安装成功 scrapy
    查看>>