JFinal源码解析:1.概述

前言:

之前有几个邮政的项目我们公司都是用jFinal写的,参与了那几个项目之后我也渐渐熟悉了JFinal。jFinal的作者也说过,JFinal只有1万多行的代码,非常适用于源码研究。当时我在做项目的工程也常常会点进去看源码,后来一直都想写几篇博客总结一下,趁着这几天加班不多,我就抽时间出来写一个系列吧。

首先看看JFinal官网(http://www.jfinal.com/project/1)对JFinal的介绍:

JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python、php等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋友 :)

JFinal有如下主要特点:

MVC架构,设计精巧,使用简单
遵循COC原则,零配置,无xml
独创Db + Record模式,灵活便利
ActiveRecord支持,使数据库开发极致快速
自动加载修改后的java文件,开发过程中无需重启web server
AOP支持,拦截器配置灵活,功能强大
Plugin体系结构,扩展性强
多视图支持,支持FreeMarker、JSP、Velocity
强大的Validator后端校验功能
功能齐全,拥有struts2的绝大部分功能
体积小仅632K,且无第三方依赖

总的来说,JFinal是一个Java极速开发框架,配置简单,能快速启动。 


架构:

在《JFinal手册》中,作者给出了jFinal的架构,如下图所示:


JFinal采用了责任链的设计模式,由Handler、Interceptor、Controller、Render、Plugin五大部分组成,以Action为参照,Handler处在扩展的最外围,Interceptor处在更贴近Action的周围,Controller承载Action处在扩展的中心,Render处于Action后端,Plugin处于在Action侧边位置。

在上面的图中首先一个Request过来进入到JFinalFilter,然后运用了责任链的模式,将请求一层层的传递,直到ActionHandler,在这里进行路由,路由到具体的Controller,而对于Model则是在Plugin里面实现的.这一切进行好了之后,就可以使用Render来渲染View了。


猜你喜欢

转载自blog.csdn.net/qq9808/article/details/80422335