博客
关于我
JFinal个人学习笔记之源码分析2
阅读量:328 次
发布时间: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/

    你可能感兴趣的文章
    opencv图像特征融合-seamlessClone
    查看>>
    OpenCV图像的深浅拷贝
    查看>>
    OpenCV在Google Colboratory中不起作用
    查看>>
    OpenCV学习(13) 细化算法(1)(转)
    查看>>
    OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波
    查看>>
    OpenCV学堂 | CV开发者必须懂的9种距离度量方法,内含欧氏距离、切比雪夫距离等(建议收藏)
    查看>>
    OpenCV学堂 | OpenCV中支持的人脸检测方法整理与汇总
    查看>>
    OpenCV学堂 | OpenCV案例 | 基于轮廓分析对象提取
    查看>>
    OpenCV学堂 | YOLOv8与YOLO11自定义数据集迁移学习效果对比
    查看>>
    OpenCV学堂 | YOLOv8官方团队宣布YOLOv11 发布了
    查看>>
    OpenCV学堂 | YOLOv8实战 | 荧光显微镜细胞图像检测
    查看>>
    OpenCV学堂 | 汇总 | 深度学习图像去模糊技术与模型
    查看>>
    OpenCV安装
    查看>>
    OpenCV官方文档 理解k - means聚类
    查看>>
    opencv实现多路播放
    查看>>
    opencv常用函数
    查看>>
    OpenCV探索
    查看>>
    OpenCV添加中文(五)
    查看>>
    opencv源码查看
    查看>>
    OpenCV点目标检测未找到所有目标,并且找到的圆圈偏移
    查看>>