这章开始,我尝试分析一下快速开发框架jfinal
http://www.jfinal.com/
JFinal有如下主要特点:
- MVC架构,设计精巧,使用简单
- 遵循COC原则,零配置,无xml
- 独创Db + Record模式,灵活便利
- ActiveRecord支持,使数据库开发极致快速
- 自动加载修改后的java文件,开发过程中无需重启web server
- AOP支持,拦截器配置灵活,功能强大
- Plugin体系结构,扩展性强
- 多视图支持,支持FreeMarker、JSP、Velocity
- 强大的Validator后端校验功能
- 功能齐全,拥有struts2的绝大部分功能
- 体积小仅248K,且无第三方依赖
空间架构
框架采用微内核全方位扩展架构,全方位是指其扩展方式在空间上的表现形式。整个空间架构又Handle、Interceptor、Controller、Render、Plugin五个部分组成。每个部分都是基于接口实现的,支持完整的定义,扩展性强。
逻辑架构
经典的mvc模式演化成6个步骤
1.Http 包括 httpservletRequest 和httpServletResponse,既客户端请求和响应
2.Filter 所有请求的拦截器
3.Handle 请求处理器,对所有请求的公共处理,我们可以做权限控制、安全验证等,它是责任链的变种,由初始配置的Handler以及框架默认的ActionHandle,构成链条,一次执行
4.Action 动作处理器,他是AOP+Command模式的变种。有ActionInvocation进行调度,先执行拦截器,最后执行具体方法
5.Model 模型层,包括实体模型的定义、DB+ActiveRecord模式数据库操作的支持、从请求中解析出对应参数构造Model实例,可以把它看成DAO
6.Render 渲染曾。负责将服务端的数据组装成客户端需要的数据格式,然后reponse到客户端。支持洞中视图 FreeMark、Jsp、VELOCITY
包简介
aop:拦截器
config:通用配置
core:核心处理,主要是Controller的调度
ext:扩展包
handle:全局处理器
i18n:国际化
kit:工具类
log:日志类
plugin:插件处理
render:渲染处理
server:服务器
token:令牌
upload:文件上传处理
validate:验证处理,主要是数据持久化时的验证
核心类作用
1:JFinalFilter 框架入口,也是接管所有请求的地方
2:ActionMapping 映射url至action
3:ActionHandler 接管动态请求,控制 action + interceptor + render 执行流程
4:ActionInvocation 执行interceptor + action
5:Render 渲染视图
6:ActiveRecord 数据库支持
7:JFinalConfig 系统配置
8:Validator 校验