以下内容部分引用于JFinal手册和以下链接:
百度百科:http://baike.baidu.com/view/8339916.htm
Javadoc:http://www.ostools.net/apidocs/apidoc?api=jfinal
GitHub:https://github.com/jfinal/jfinal
GoogleCode:http://code.google.com/p/jfinal/
-------------------------------------------------
JFinal顶层架构图如下:
JFinal的ActionHandler结构图如下:
-------------------------------------------------
学习笔记:
一.JFinalConfig:
【基于 JFinal 的 web 项目需要创建一个继承自 JFinalConfig 类的子类,该类用于对整个 web 项目进行配置。】
1.configConstant 配置常量值
2.configRoute 配置访问路由
JFinal 访问一个确切的 Action(Action 定义见 3.2 节)需要使
用 controllerKey 与 method 来精确定位,当 method 省略时默认值为 index。urlPara
是为了能在 url 中携带参数值,urlPara 可以在一次请求中同时携带多个值,JFinal
默认使用减号“-”来分隔多个值。
3.configPlugin 配置插件
配置C3p0数据库连接池插件与ActiveRecord数据库访问插件:
loadPropertyFile("dbConfig.properties");//加载配置文件 C3p0Plugin cp = new C3p0Plugin(getProperty("jdbcUrl"), getProperty("username"), getProperty("password")); me.add(cp);//添加数据库连接池插件 ActiveRecordPlugin arp = new ActiveRecordPlugin(cp); me.add(arp);//添加动态记录插件
4.configInterceptor 配置拦截器
5.configHandler 配置处理器
配置的处理器Handler 可以接管所有 web 请求,并对应用拥有完的控制权,可以很方
便地实现更高层的功能性扩展。
二.Controller:
【该类作为 MVC 模式中的控制器。基于 JFinal的 Web 应用的控制器需要继承该类。Controller 是定义 Action 方法的地点,是组织 Action 的一种方式,一个 Controller 可以包含多个 Action。】
1.Action
Controller 以及在其中定义的 public 无参方法称为一个 Action。Action 是请
求的最小单位。Action 方法必须在 Controller 中声明,该方法必须是 public 可见
性且没有形参。
2.getPara系列方法
3.setAttr方法
4.render系列方法
Controller.render(String)时的视图类型由 JFinalConfig.configConstant(Constants
constants)配置中的 constants. setViewType(ViewType)来决定,该设置方法支持的
ViewType 有:FreeMarker、JSP、Velocity,不进行配置时的缺省配置为 FreeMarker。
★具体使用查阅文档
三.Interceptor:
Interceptor 是 JFinal AOP 的实现方式
拦截器配置共分三个级别:Global 级、Controller 级、Action 级。Global 级
的拦截器将对所有 Action 进行拦截,Controller 级拦截器将对该 Controller 中所
有 Action 进行拦截,Action 级拦截器仅对该 Action 进行拦截。
Global 级拦截器在 JFinalConfig.configInterceptor(Interceptors me)进行配置。
Controller级拦截器使用@Before annotation 放置在Controller类定义前进行配置。
Action 级拦截器使用@Before annotation 放置在 Action 定义前进行配置。
四.ActiveRecord:
注:ActiveRecord 是作为 JFinal 的 Plugin 而存在的
1.Model:
基于 ActiveRecord 的 Model 无需定义属性,无需定义 getter、setter
方法,无需 XML 配置,无需 Annotation 配置
2.Db:
Db 类及其配套的 Record 类,提供了在 Model 类之外更为丰富的数据库操作
功能。使用 Db 与 Record 类时,无需对数据库表进行映射,Record 相当于一个通用的 Model。
3.★事务处理 查阅文档
4.cache:
??待学习
5.★表关联操作 查阅文档
五.EhCachePlugin:
EhCachePlugin 是作为 JFinal 的 Plugin 而存在的
me.add(new EhCachePlugin());待学习、、
六.SpringPlugin:
IOC。。待学习、、
七.Validator:
待学习、、