首页 游戏 软件 排行 专题
jfinal demo
  • jfinal demo1.9 官方最新版

  • 大小:24.2M更新:2015-05-27 11:03
  • 类别:编程控件系统:WinAll, Win7, win8

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

JFinal 1.9 针对开发者最为关注的功能有20多项增强及改进。除了提供配置文件的全局支持外,还加强了在移动互联网时代对JFinal作为服务端及客户端的支持,例如XmlRender、JsonRender可极度方便地开发Xml、Json服务端程序,HttpKit可以极简地与类似于微信公众平台的API进行通信。除了功能性的增强以外,还对代码进行了优化与精简,更轻、更快、更爽 ^_^

JFinal有如下主要特点:

MVC架构,设计精巧,使用简单

遵循COC原则,零配置,无xml

独创Db + Record模式,灵活便利

ActiveRecord支持,使数据库开发极致快速

自动加载修改后的java文件,开发过程中无需重启web server

AOP支持,拦截器配置灵活,功能强大

Plugin体系结构,扩展性强

多视图支持,支持FreeMarker、JSP、Velocity

强大的Validator后端校验功能

功能齐全,拥有struts2的绝大部分功能

体积小仅248K,且无第三方依赖

jfinal 小例子

了解jfinal的结构和特点

先上图

1、建数据库(我用的是oracle数据库,其他的相对也差不多)

-- Create tablecreate table CLASSES
(
 classesid      NUMBER not null,
 classesname    VARCHAR2(20),
 classesaddress VARCHAR2(50)
);-- Create tablecreate table STUDENT
(
 studentid   NUMBER not null,
 studentname VARCHAR2(10),
 studentage  NUMBER,
 studentsex  VARCHAR2(2),
 classesid   NUMBER);alter table STUDENT  add constraint FK_CLASSESID foreign key (CLASSESID)  references CLASSES (CLASSESID);

新建项目,我用的myeclipse,先把jar包导入

2、实体类
Classes.java

package com.demo.model;import com.jfinal.plugin.activerecord.Model;public class Classes extends Model<Classes> {    public static final Classes dao = new Classes();
}

Student.java

package com.demo.model;import com.jfinal.plugin.activerecord.Model;public class Student extends Model<Student> {    public static final Student dao = new Student();    public Classes getClasses() {        return Classes.dao.findById(get("classesid"));
   }

}

什么这是实体类?

没错!!~ ActiveRecord 是 jfinal 最核心的组成部分之一,通过 ActiveRecord 来操作数据库,将极大地减少代码量,极大地提升开发效率,配置在后面,我这里用的是Model,Model 是 ActiveRecord 中最重要的组件之一,它充当 MVC 模式中的 Model部分。
以上代码中的 User 通过继承 Model,便立即拥有的众多方便的操作数据库的方法。在 User 中声明的 dao 静态对象是为了方便查询操作而定义的,该对象并不是必须的。 基于ActiveRecord 的 Model 无需定义属性, 无需定义 getter、 setter方法,无需 XML 配置,无需 Annotation 配置,极大降低了代码量。Model常见方法见官方API。

JFinal还有 独创 Db + Record 模式,Db 类及其配套的 Record 类, 提供了在 Model 类之外更为丰富的数据库操作功能。使用 Db 与 Record 类时,无需对数据库表进行映射,Record 相当于一个通用的 Model。Db常见方法见官方API。

JFinal 1.9 changelog

1:添加PropKit、Prop方便全局使用配置,配置文件加载默认目录改为类路径之下,符合maven习惯

2:增强jsp之下的jstl的EL输出,添加ModelRecordElResolver,JspRender.isSupportActiveRecord默认值改为false,默认使用EL增强

3:添加HttpKit及EncryptionKit方便与第三方API进行通信与加密,便于开发微信公众号这类项目

4:添加Controller.renderXml(String)方便开发xml服务端项目

5:增强FileRender,文件下载支持多线程下载以及断点续传功能

6:改进DbPro.tx()与Tx拦截器事务功能,添加对抛出Error时的回滚,增强事务安全

7:优化ActionHandler对静态资源判断性能,支持对抛出Error时写日志,方便jvm当掉时排查错误

8:提升Oracle在表数据量极大时ARP初始化性能,OracleDialect.forTableBuilderDoBuild()中sql条件改为rownum<1,fillStatement()添加对Timestamp的判断

9:优化JsonRender,添加JsonRender.addExcludeAttrs()方法,可以排除renderJson()时不想转换为json的属性,默认已经排除tomcat开启SSL后自动生成的属性,方便tomcat支持SSL

10:优化 StrKit.firstCharToLowerCase、firstCharToUpperCase,性能提升 2.1 倍

11:增强HandlerKit,添加renderError404(),方便在Handler中使用404页面进行渲染

12:增强FakeStaticHandler,支持对非伪静态action请求的过滤

13:精简JFinalConfig与配置加载、读取有关代码

14:ICallback.run()更名为call()

15:开放Table.getColumnTypeMap()方便开发者扩展ARP功能,并使其返回的map为只读确保安全

16:添加Controller.renderText(String, ContentType)方便各种Content Type的text渲染

17:添加com.jfinal.plugin.activerecord.OrderedFieldContainerFactory 类,方便开发数据库查询工具项目,以便model中的属性迭代输出顺序与sql select后的字段次序保持一致 

18:优化DruidPlugin,driverClass 默认值改为 null,以便让新版本Druid自动探测该值

19:改进EhCachePlugin,添加RenderInfo、RenderType解决对render对象缓存时线程安全问题

20:优化SessionInViewInterceptor,跳过处理JsonRender提升性能

21:支持Controller内public无参方法成为非action,添加com.jfinal.ext.interceptor.NotAction,通常用于在拦截器中需要控制器提供public无参方法的场景

22:优化JsonKit,listToJson、mapToJson方法可见性改为private,对这些方法有依赖的代码可改为调用toJson()方法

23:优化Render,去掉对Serializable接口的实现,删除所有Render继承类中的transient关键字以及serialVersionUID属性

文件清单及使用说明

1:jfinal-1.9-bin.jar

  开发 jfinal 项目唯一必须的 jar 包,其它所有 jar 包都不是必须的

2:jfinal-1.9-src.zip

  jfinal 1.9 源代码

3:jfinal-1.9-bin-with-src.jar

  jfinal 1.9 开发包 + 源码 的整合,方便非 maven 开发者在开发时调试和查看源码,从而不用再单独绑定 jfinal-1.9-src.zip 就可以在 IDE 中查看源码

4:jetty-server-8.1.8.jar

  jetty-server-8.1.8.jar 用来支持无需额外安装 tomcat jetty 等 web server

   即可开始开发,同时它也是支持热部署的必要包。特别注意在使用tomcat开发或部署时需要去掉 jetty-server-8.1.8.jar 包,以免引起冲突

5:jfinal-1.9-lib 目录下所有 jar 包

  为开发者准备的常用且可能用到的 jar 包,方便非 maven 用户取用。详情请见 jfinal-1.9-lib 目录下的说明文件:“jfinal-1.9-库文件依赖及使用说明.txt”

玩家留言 跟帖评论
查看更多评论
相关应用
猜你喜欢

开发者其他应用

同类下载
其它版本