- 1、本文档共28页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
jfinal技术框架解析
JFinal技术架构浅析1.1 空间架构框架采用微内核全方位扩展架构,全方位是指其扩展方式在空间上的表现形式。整个空间架构由?Handler、Interceptor、Controller、Render、Plugin?五大部分组成。每个部分都是基于接口实现的,支持完整的自定义,使用灵活,扩展性强。空间架构图。HandlerInterceptorControllerRenderPlugin1.2 逻辑架构框架的逻辑架构非常简单,就是一个经典的 MVC 模式演化、大致分成以下 6 个步骤:1.2.1 Http包括?HttpServletRequest、HttpServletResponse,即客户端请求与响应1.2.2 Filter所有请求的拦截器,相当于是一个闸口1.2.3 Handler请求处理器,是对所有请求的公共处理,在这里我们可以做权限控制、安全验证等。它是一个责任 链模式变种, 由初始配置的 Handler 以及框架默认的 ActionHandler构成一个链条,依次执行。1.2.4 Action动作处理器,它是一个 AOP + Command 模式变种。由?ActionInvocation 进行调度,先执行拦截器,最后执行具体方法。1.2.5 Model模型层。在这个层面包括实体模型的定义、DB+ActiveRecord 模式数据库操作的支持、从请求中解析出对应参数构造 Model 实例,可以把它看成是 DAO。1.2.6 Render渲染层。负责将服务端的数据组装成客户端需要的数据格式,然后 response 到客户端。支持多种视图的渲染:FreeMark、Jsp、VELOCITY 以及自定义。HttpServletRequestHttpServletResponseJFinalFilter(所有请求的拦截器)?Interceptorn(拦截器)?Method(具体的方法)?Action ActionInvocation(动作调度器)?ActionHandler(动作处理器)?Handler(处理器 )??Handler?ModelInjector (模型构造器)Model(模型定义)DB(数据库操作工具)Render(渲染器)?JSP FreeMark VeloCity 自定义 View1.3 代码架构?1.3.1 包结构1.3.2 包简介Aop:拦截器?Config:通用配置?Core:核心处理,主要是 Controller 的调度?Ext:扩展包?Handler:全局处理器 I18N:国际化?util:一些工具类Log:日志类?Plugin:插件处理?Render:渲染处理,比如对于 FreeMark 的支持?Server:服务器?Token:令牌?Upload:文件上传处理?Validate:验证处理,主要是数据持久化时的验证1.4 运作原理我们从一次新增页面的 add?操作请求来看:?1. 首先是客户端点击新增按钮,提交一个新增请求,请求中会带上服务端处理地址 url2. 所有请求都会被?JFinalFilter 拦截,然后调用 Handler?进行详细处理?3. Handler 是 一?个 链 条 形 式 的 调 用 , 包 括 0-n 个 自 定 义 Handler ,?以 及最 后 一 个ActionHandler,依次执行,当然可以自定义跳出。4. 进入 ActionHandler 后,首先会根据请求的 target?从缓存的 ActionMapping?中映射获取 到具体操作对应的 Action 对象,这个对象里面封装了方法名、方法上面的拦截器,方法所在的 Controller, controller 上面的拦截器等。 然后根据 Action 以及 Controller 实例构造出 ActionInvocation。?5. 接下来通过 ActionInvocation 的?invoke 进行具体处理,这是一个明显的? Command 模式的实现。首先是拦截器的调用,拦截器调用中会重新回调 ActionInvocation 的 invoke, 当拦截器调用完毕后,会调用当前操 作的 method6. 当进入具体 controller 的新增方法时, 调用基类getModel(Systemparam.class); 这个方法会从 request 中解析出所需要的数据,通过反射设置给具体的? Model 实体类,最终通过 ActiveRecord 来进行数据存储 .7. 最后是页面渲染 render核心代码简介我们还是从一次新增请求的流程来看涉及到的核心类有哪些本身就是一个 Http 的过滤器,主要有 3 个方法2.1.1 init(初始化)在服务器启动时执行一次,负责初始化框架的全局配置2.1.2 d
文档评论(0)