JFinal简述

jfnal-2下载 JFinal 采用微内核全方位扩展架构,全方位是指其扩展方式在空间上的表现形式。JFinal 由 Handler、Interceptor、Controller、Render、Plugin 五大部分组成。本章将简单介绍此架构以 及基于此架构所做的一些较为常用的扩展。 立即下载

目录

  1. 基本概念
  2. 发展概况
  3. 系统架构
  4. 简要对比
  5. 开发框架简介
  6. 实际案例
  7. IDE支持

基本概念

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

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

Plugin体系结构,扩展性强

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

强大的Validator后端校验功能

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

体积小仅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 ORM和Hibernate简要对比

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。以下是代码示例:

public class HelloController extends Controller {

public void index() {

renderText("此方法是一个action");

}

public void test() {

renderText("此方法是一个action");

}

}

JFinal 中的Model

Model是ActiveRecord中最重要的组件之一,它充当MVC模式中的Model部分。以下是Model定义示例代码:

public class User extends Model<User> {

public static final User dao= new User();

}

以上代码中的User通过继承Model,便立即拥有的众多方便的操作数据库的方法。在User中声明的dao静态对象是为了方便查询操作而定义的,该对象并不是必须的。基于ActiveRecord的Model无需定义属性,无需定义getter、setter方法,无需XML配置,无需Annotation配置,极大降低了代码量。

以下为Model的一些常见用法:

// 创建name属性为James,age属性为25的User对象并添加到数据库

new User().set("name", "James").set("age", 25).save();

// 删除id值为25的User

User.dao.deleteById(25);

// 查询id值为25的User将其name属性改为James并更新到数据库

User.dao.findById(25).set("name", "James").update();

// 查询id值为25的user, 且仅仅取name与age两个字段的值

User user = User.dao.findById(25, "name, age");

// 获取user的name属性

String userName = user.getStr("name");

// 获取user的age属性

Integer userAge = user.getInt("age");

// 查询所有年龄大于18岁的user

List<User> users = User.dao.find("select * from user where age>18");

// 分页查询年龄大于18的user,当前页号为1,每页10个user

Page<User> userPage = User.dao.paginate(1, 10, "select *", "from user where age > ?", 18);

 

实际案例

JFinal开发的案例有哪些?

目前学习和使用JFinal极速web开发框架的个人开发者或者公司团队已经非常多了,项目类型范围涵盖也比较多,常见的后台管理系统,电商网站,金融系统,校务管理,进销存系统,ERP系统,游戏后台维护支撑系统,微信小程序社区俱乐部等,都已经有人在实践中成功使用了JFinal框架开发,而且反馈都是积极正面的,很大程度上促进了JFinal框架的发展。

 

IDE支持

目前,JFinal项目开发主流使用的IDE是Eclipse和Idea。

Eclipse中开发JFinal项目有专门的辅助插件-JBolt插件,提供了模板指令代码提示功能和一键创建开发环境、代码生成能力。

 

本文摘自百度百科:https://baike.baidu.com/item/JFinal/9383157?fr=aladdin

 

作者:Roger_CoderLife

链接:https://blog.youkuaiyun.com/Roger_CoderLife/article/details/97108994

本文为Roger_CoderLife的原创文章,著作权归作者所有,转载请注明原文出处,欢迎转载!

 

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

相关推荐

(十)安卓开发中的Activity之间的通信使用详解

下面将结合代码和具体在 Android 开发中,Activity 之间的通信是非常常见且核心的功能之一使用场景,详细讲解这几种方式。

cuijiying的博客 1281

Jfinal 框架简单入门

简单读懂JFinal框架各个核心配置

Survivor_L的博客 6741

DaVinciCFG实战:从ARXML配置到ADC代码生成全解析

本文详细解析了使用DaVinciCFG工具进行ADC模块配置的全过程,从ARXML文件处理到代码生成与集成。重点介绍了关键参数配置、ARXML语法规则、常见错误排查及代码优化技巧,帮助开发者掌握AUTOSAR架构下ADC驱动开发,提升汽车电子系统的可靠性。

f9g0h的博客 380

Jfnal框架学习

最近换了项目组,项目组里面用的框架居然不是spring,而是国产框架,Jfnal,优秀~ 下面的网址是我找到的一个比较好的Jfnal学习网址,特地分享出来~ Jfnal框架学习网址:https://www.jfinal.com/doc ...

代码君的博客 702

微动探测原理及仪器介绍

微动探测原理及仪器介绍 1、微动探测原理 1.1 基本理论 微动是由体波和面波组成,其中微动能量的百分之七十以上都来自于面波,并且它与体波的主要区别是在不均匀的介质中传播时面波会发生频散,而体波不存在频散现象,因此面波是微动探测的主要对象。 对于介质的弹性参数(如横波速度、层薄厚、压缩波速度、密度等),面波传播速度相对比较敏感,特别是对横波的敏感性很高,因此可以利用面波来反演横波速度。 在时间和空间上,微动信号具有以下特性:高度变化、无规律性、无重复性等,有研究发现全世界各处记录的微动信号都有相似

zw461450141的博客 1万+

格(Lattice)基础(一)

有关格的基础概念,和相关的格难题

Amire0x的小乐园 5701

关于JFinal的框架-逻辑架构

JFinal的框架的逻辑架构是十分简单的,说更加简单一点,它是简单的经典的MVC模式。 它大致分为6个步骤: 客户端的request和response http请求 JFinalFilter过滤器 Handler请求处理器,对所有的请求进行公共处理 Action动作处理器,先...

chouhuliao5950的博客 307

微波射频学习笔记18-------偶极子天线和微波天线设计介绍

几种天线设计方法的介绍 一、偶极子天线 1.天线模型 两根紧挨着的金属导体,长度均为四分之一波长,直径均远小于波长,两导体间距也远小于波长。 2.天线性能的设计因素 ① 单个导体长度L:(光速/频率)/4=四分之一波长(在空气中传播的波长),但在导体中传播,波长会变短; ② 导体半径R:远小于波长即可,使用导电率高些的材料,市面上常见直径零点几毫米就挺好,或者用波长/200,得出一个小200的值,也算远小于波长; ③ 两导体间距S:远小于波长即可,可以比半径更小点。 以上三个变量L、R、S,均可在仿真软件

Sil_sprout 1万+

JFinal快速入门

JFinal 简介 JFinal 是基于 Java 语言的极速 WEB + ORM 开发框架 JFinal 有如下主要特点:MVC 架构,零配置,自动加载修改后的 java 文件,AOP 支持,拦截器配置灵活,多视图支持 JFinal 2.1新增 : Generator类 用来极速生成 Model()、BaseModel(用于被最终的 Model 继承的基类,所有的 getter、setter方法...

土豆编程 1526

Conformal LEC逻辑等价性检查介绍和参考脚本

分为三个产品:Conformal L、Conformal XL、Conformal GXL。L是功能性检查,XL支持复杂数据通路的综合和APR优化,GXL支持定制的stdcell和定制memory的检查。Cadence Conformal Equivalence Checker,就是常说的LEC,可以用来验证RTL、门级网表、甚至spice网表的逻辑等价性。在setup模式下,读入库、golden设计、有修改的设计,并指定一些option。对于简单的设计,通过GUI来做LEC也是可以的。

weixin_44606964的博客 919

攻克反光难题!YOLOv9工业缺陷检测实战:高反光件、微小划痕精准识别(附抗反光代码+产线数据)

文章摘要:本文针对不锈钢、铝合金等高反光工业件的缺陷检测难题,提出了一套“硬件抗反光+YOLOv9小目标增强”的解决方案。通过分析反光干扰(镜面/漫反射)和微小划痕(0.1mm级)两大核心问题,详细介绍了500万像素工业相机+偏振光源的硬件配置方案,以及基于偏振图像融合和超分辨率放大的预处理方法。最终实现误检率1.2%、微小划痕检出率99.3%的工业级检测效果,并提供了可落地的代码实现和车间实测数据。(148字)

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1043

JFinal初识

JFinal框架初识

qq_63688997的博客 2426

十二种嵌入式通信协议

嵌入式通信协议选型核心要点解析 在嵌入式系统开发中,通信协议选型直接影响项目成败。本文系统梳理了12种主流协议,从三个维度提供选型指南: 板级通信协议: I²C:双线制,适合传感器连接(温湿度、RTC等) SPI:高速全双工,适用于Flash存储、TFT屏等 UART:异步串行,常用于调试日志输出 总线通信协议: CAN:汽车电子首选,支持多主节点和硬件仲裁 LIN:低成本单线方案,适用于车窗控制等场景 RS485:工业自动化主力,最长传输距离1200米 Modbus:工业领域通用协议,支持RTU/TCP格

qq_37999850的博客 251

JFinal在网络服务端开发中的位置

这个,直接上图。 1.HTTP Server 直接处理的是http请求。 以前的http都是静态的访问文件,直接访问mysql即可 2.Application Server 提供动态的内容访问,即需要在服务器这一边运行一些java程序。 这些运行在服务端的java小程序,叫做Servlet。 而运行Servlet的服务器就叫做容器,容器运行Servlet,然后将动态内容转换为

山鸡哥的专栏 678

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

JFinal框架的介绍及使用

JFinal: JFinal 是基于Java 语言的极速 web 开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python等动态语言的开发效率。 但目前此框架不是主流框架,大部分公司极少使用。 JFinal 由Handler、Interceptor、Controller、Render、Plug......

weixin_42385438的博客 7173

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

JFinal学习笔记

JFinal这个框架主要特点是1. 精简 2.实用 3. 极速 JFinal是JavaWeb框架 JFinal笔记前言一、快速上手1.1 以非maven方式开发1.2 以maven开发二、JFinalConfig2.1 configConstant(Constants me)三. 控制器Controller3.1JFinal访问流程总结 前言 概念: JFinal 是基于 Java 语言的极速 WEB + ORM 开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restf

挽风博客 1552

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

jfinal(1)—jfinal-undertow 下开发 jfinal项目

1、创建标准的 maven web项目 没装maven和没创建maven web项目的可以看这三篇! maven安装 Eclipse和maven工具的集成 Eclipse使用maven创建web项目 2、添加 jfinal-undertow 与 jfinal 依赖 <dependency> <groupId>com.jfinal</groupId> <artifactId>jfinal-undertow</artifactId>

qq_45928727的博客 968

【JFINAL】——JFinal 整合 Swagger 详细流程

如有侵权,请告知删除。综合前边的答案整理而成。     参考网址: http://blog.youkuaiyun.com/time_travel/article/details/78412321 Swagger API 网址: http://blog.youkuaiyun.com/jun55xiu/article/details/70316851 注解解释: http://docs.swagger.io/...

weixin_37603867的博客 4822

JFinal中json的使用

我们来说一说jfinal中的json使用。在struts2中或者是别的框架我相信大家都知道怎么使用json向前台传值。json字符串拼接,或者用第三方jar包解析对象成json字符串。

Gavin的博客 1万+

JFinal入门(三)JFinal配置文件详解

前言       本章讲解JFinal配置类文件 方法 1.概念 我们知道,JFinal的配置文件不同于之前框架的类XML的写法,采用的是Java类的方式配置,该类需要继承JFinalConfig,用于对整个web项目进行配置。 JFinalConfig子类需要实现六个抽象方法,如下所示: package cn.edu.ccut.config; import com.jfinal....

jwang的博客 2999

JFinal源码走读_1_jfinal初始化

jfinal的入口 步进分析 jfinal核心初始化方法jfinalinit分析 ConfigconfigJFinaljfinalConfig分析 ConfigconfigJFinaljfinalConfig分析 startPlugins分析 url到action映射的核心实现 initHandler分析 initRender分析 renderFactoryinitconstants servlet

孤星可 2483

jfinal学习笔记之idea启动jfinal

开发环境: 项目是在eclipse里使用jbolt创建的,不过用idea太久,已经没法适应eclipse的操作习惯了。所以将项目切换到idea下。 创建启动类,这个类名字叫什么都行。我这里就叫 ManagementApplication 了。 启动类代码如下: import com.jfinal.core.JFinal; public class ManagementApplica...

Let_me_tell_you的博客 2886

jfinal01jfinal整合springmvc

搭建jfinal-spring-mvc工程 什么是jfinal-spring-mvc 什么是jfinal jfinal官网https://www.jfinal.com/ jfinal是一个java开发框架,只带web中间件,启动速度飞快 为什要使用jfinal整合spring mvc 因为默认的spring-mvc依赖tomcat,十分不方便,而spring-boot有自动配置开...

litong131219的博客 915

jfinal的分页

 分页的SQL语句 mysql数据库,可以采用limit语句进行分页。 oracle数据库,可以采用rownum的方式进行分页。 JFinal自带分页 对象.dao.paginate(pageNumber,pageSize,select,sqlException) //pageNumber 第几页 //pageSize 一页几条记录 controller的某个方法: [jav

laiyuan999的博客 2767

JFinal 启动流程

前言 启动类 核心过滤器:JFinalFilter 核心初始化类:JFinal 总结 1.前言 JFinal 是基于Java 语言的极速 web 开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。 – 百度百科 写这篇文档的时候特意去知乎逛了一下,果然小众的框架还是没有被主流接受,毕竟现在还是spring一统天下的时期。 但我觉得它有它的优势。作为一个新手玩家,它的学习成本确实很低。我依然记得大学那会磨了一天也不知道SSM整合的时候哪里出了问题,我想如果那.

Test_那筱风 1223

SpringBoot整合JFinal框架(一)

前言 JFinal 是基于 Java 语言的极速 WEB + ORM + AOP + Template Engine 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有Java语言所有优势的同时再拥有ruby、python、php等动态语言的开发效率! JFinal官网 一、JFinal优点有哪些? MVC架构,设计精巧,使用简单 遵循COC原则,支持零配置,无xml 独创Db + Record模式,灵活便利 ActiveRecord支持,使数据库开发

渣渣园的博客 4549
上一篇: Redis集群方案怎么做?大牛给你介绍五种方案!
下一篇: Maven简述
Roger_CoderLife
博客等级 码龄9年 211粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值