博客
关于我
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 使用pandas 进行查询和统计详解
    查看>>
    Redis 配置文件redis.conf详细解释
    查看>>
    python网络爬虫(2)——scrapy框架的基础使用
    查看>>
    Python 使用哈希函数用于加密
    查看>>
    Python 依赖管理的革新——Poetry 深度解析
    查看>>
    python 保留精度及增加去除数字的千位分隔符(金额化数字)
    查看>>
    python 倒计时 9,8,7,。。。。。。0
    查看>>
    Python 入门开发学习笔记之数据的增删改查
    查看>>
    Python 入门教程(2)搭建环境 2.4、VSCode配置Node.js运行环境
    查看>>
    Python 内存管理
    查看>>
    Python 内嵌函数:它们有什么用处?
    查看>>
    python 利用pyttsx3文字转语音
    查看>>
    Python 基础语法:基本数据类型(一)
    查看>>
    Python 基础语法:基本数据类型(字典)
    查看>>
    Python 基础语法:基本数据类型(集合)
    查看>>
    python 堆排序
    查看>>
    python 复习计划
    查看>>
    Python 多处理 apply_async 永远不会在 Windows 7 上返回结果
    查看>>
    Python 多处理 Numpy 随机
    查看>>
    Python 多处理 >= 125 列表永远不会完成
    查看>>