JFinal 是基于
Java 语言的极速 web 开发框架,其核心
设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python等
动态语言的开发效率。
发展概况
JFinal 项目开发始于2011年初,作者詹波(James Zhan)曾任搜格信息技术有限公司
Java架构师,
北京信息管理科学研究所CTO,现任
微格网际(北京)科技有限公司联合创始人、
网校网CTO。项目开源于2012年3月18日,采用对商业应用友好的Apache Licence 2.0协议。开源以来深受广大开发者欢迎,目前采用JFinal框架开发的
用户群迅速壮大,同时不乏一些已经上线的商业化
互联网项目。JFinal在中国最大的
开源社区备受瞩目,自开源以来一直是热门项目。
JFinal将一直坚持以下
设计目标:开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在坚持以上设计目标的同时,基于微内核+全方位扩展型架构,打造功能极度全面WEB+ORM开发框架。彻底解放开发者的生产力,彻底改善开发者的开发体验,让
软件开发成为一件轻松愉快的事情。
JFinal通过实践逐步形成了一套极速开发方法,此法将在即将打造的JFinal极速开发社区展示出来。
系统架构
JFinal 采用
微内核全方位扩展架构,全方位是指其扩展方式在空间上的表现形式。JFinal由Handler、Interceptor、Controller、Render、Plugin五大部分组成。
JFinal架构十分简单,顶层是一个
责任链模式变种,ActionHandler 内部结构也十分简单,是一个Command模式变种。JFinal 架构图如下:
遵循COC原则,零配置,无xml
ActiveRecord支持,使数据库开发极致快速
自动加载修改后的java文件,开发过程中无需重启
web server多视图支持,支持
FreeMarker、
JSP、Velocity
强大的Validator后端校验功能
体积小仅218K,且无第三方依赖
简要对比
JFinal WEB MVC和Struts简要对比
JFinal遵循COC原则,零配置,无xml,而
struts需要配置来支持action、result、interceptor配置与使用。
JFinal开发效率非常之高,相对Struts开发效率能提升五到十倍。
JFinal代码量非常省,相对Struts开发能省50%到70%代码量。
JFinal遵循Restful规范,而struts自身未提供Restful支持。Struts可以通过插件来支持restful,但支持不彻底使用不方便。
JFinal提供
数据库支持,属于一站式解决方案,而struts仅为WEB
MVC框架并未提供数据库支持。
JFinal学习成本极低,只需两个小时学习即可上手开发,而Struts学习成本相对较高。
JFinal相对Struts来说更加轻量级,JFinal打包jar文件仅173KB,而struts则为1.8MB。
JFinal采用ActiveRecord实现
数据库操作支持,较Hibernate开发效率提升六到十倍。
JFinal ActiveRecord较Hibernate学习成本低,一小时内能上手开发。
JFinal零配置,对数据库支持五个无特点:无xml、无annotation、无getter、无setter、无attribute,极大降低了代码量,统计证实代码量节省70%到95%。
JFinal数据库操作完全采用原生sql,相对Hibernate采用的HQL学习成本低,功能更强大,性能更高,稳定性好。
开发框架简介
JFinal 中的Controller
Controller是JFinal核心类之一,该类作为
MVC模式中的控制器。基于JFinal的Web应用的控制器需要继承该类。Controller是定义Action方法的地点,是组织Action的一种方式,一个Controller可以包含多个Action。以下是代码示例:
JFinal 中的Model
Model是ActiveRecord中最重要的组件之一,它充当MVC模式中的Model部分。以下是Model定义示例代码:
以上代码中的User通过继承Model,便立即拥有的众多方便的操作数据库的方法。在User中声明的dao静态对象是为了方便查询操作而定义的,该对象并不是必须的。基于ActiveRecord的Model无需定义属性,无需定义getter、setter方法,无需XML配置,无需Annotation配置,极大降低了代码量。
以下为Model的一些常见用法:
实际案例
JFinal开发的案例有哪些?
目前学习和使用JFinal极速web开发框架的个人开发者或者公司团队已经非常多了,
项目类型范围涵盖也比较多,常见的
后台管理系统,
电商网站,
金融系统,校务管理,
进销存系统,
ERP系统,游戏后台维护
支撑系统,
微信小程序社区俱乐部等,都已经有人在实践中成功使用了JFinal框架开发,而且反馈都是积极正面的,很大程度上促进了JFinal框架的发展。
IDE支持
目前,JFinal
项目开发主流使用的
IDE是Eclipse和Idea。
Eclipse中开发JFinal项目有专门的辅助插件-JBolt插件,提供了模板
指令代码提示功能和一键创建
开发环境、
代码生成能力。