jfinal技术框架解析.docx
学习
学习 好资料
更多
更多
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