jfinal技术框架解析.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

学习

学习 好资料

更多

更多

JFinal

JFinal技术架构浅析

1.1

1.1空间架构

框架承受微内核全方位扩展架构,全方位是指其扩展方式

在空间上的表现形式。整

个空间架构由Handler、Interceptor、Controller、Render、

Plugin五大局部组

成。每个局部都是基于接口实现的,支持完整的自定义,

使用敏捷,扩展性强。空间架构图。

HandlerInterceptorControllerRenderPlugin

1.2

1.2规律架构

框架的规律架构格外简洁,就是一个经典的MVC模式演

化、大致分成以下6个步骤:

包括ServletRequest、ServletResponse,即客户

端恳求与响应

Filter

全部恳求的拦截器,相当于是一个闸口

Handler

恳求处理器,是对全部恳求的公共处理,在这里我们可以做权限掌握、安全验证等。

它是一个责任链模式变种,由初始配置的Handler以及框架默认的ActionHandler

构成一个链条,依次执行。

Action

动作处理器,它是一个AOP+Command模式变种。由ActionInvocation进展调度,

先执行拦截器,最终执行具体方法。

Model

模型层。在这个层面包括实体模型的定义、

DB+ActiveRecord模式数据库操作的支持、从恳求中解析出对应参数构造Model实例,可以把它看成是DAO。

Render

渲染层。负责将效劳端的数据组装成客户端需要的数据格式,然后response到客户端。支持多种视图的渲染:FreeMark、Jsp、VELOCITY以及自定义。

ServletRequestServletResponse

JFinalFilter(全部恳求的拦截器)

Interceptorn(拦截器)Method(具体的方法)

ActionActionInvocation(动作调度器)ActionHandler(动作处理器)Handler(处理器)

HandlerModelInjector(模型构造器)

Model(模型定义)

DB(数据库操作工具)Render(渲染器)

JSPFreeMarkVeloCity自定义View

1.3

1.3代码架构

包构造

包简介

Aop:拦截器Config:通用配置

Core:核心处理,主要是Controller的调度

Ext:扩展包

Handler:全局处理器I18N:国际化util:一些工具类

Log:日志类

Plugin:插件处理Render:渲染处理,比方对于FreeMark的支持Server:效劳器

Token:令牌

Upload:文件上传处理

Validate:验证处理,主要是数据长久化时的验证

1.4运作原理

我们从一次增页面的add操作恳求来看:

首先是客户端点击增按钮,提交一个增恳求,恳求中会带上效劳端处理地址url

全部恳求都会被JFinalFilter拦截,然后调用

Handler进展具体处理

Handler是一个链条形式的调用,包括0-n

个自定义Handler,

以及最后一个ActionHandler,依次执行,固然可以自定义跳出。

进入ActionHandler后,首先会依据恳求的target从缓存的ActionMapping

中映射猎取到具体操作对应的Action对象,这个对象里面封装了方法名、方法

上面的拦截器,方法所在的Controller,controller上面的拦截器等。然后

依据Action以及Controller实例构造出

ActionInvocation。

接下来通过ActionInvocation的invoke进展具体处理,这是一个明显的

Command模式的实现。首先是拦截器的调用,拦截器调用中会重回调

ActionInvocation的invoke,当拦截器调用完毕后,会调用当前操

作的method

当进入具体controller的增方法时,调用基类

getModel(Systemparam.class);

这个方法会从request中解析出所需要的数据,通过反射设置给具体的

Model实体类,最终通过ActiveRecord来进展数据存储.

最终是页面渲染render

核心代码简介

核心代码简介

我们还是从一次增恳求的流程来看涉及到的核心类有哪

本身就是一个的过滤器,主要有3

文档评论(0)

189****1877 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体天津卓蹊信息咨询有限公司
IP属地山东
统一社会信用代码/组织机构代码
91120102MADL1U0A9W

1亿VIP精品文档

相关文档