说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

【开源专访】JFinal作者詹波:以极简方式实现Web项目的极速开发

HTML文档下载 WORD文档下载 PDF文档下载
JFinal是一个基于Java的极速Web开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。本期【开源专访】我们采访了JFinal项目的作者詹波,请他来详细介绍这个项目。

JFinal是一个基于Java的极速Web开发框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful,在拥有Java语言所有优势的同时再拥有Ruby、Python等动态语言的开发效率。JFinal项目开发始于2011年初,并于2012年3月开源,采用对商业应用友好的Apache 2.0协议。

项目地址:https://github.com/jfinal/jfinal

本期【开源专访】我们采访了JFinal项目的作者詹波,请他来详细介绍这个项目。詹波曾任搜格信息技术有限公司Java架构师,北京信息管理科学研究所CTO,于2011年联合创办了微格网际科技有限公司,并担任旗下网校网的CTO。


CSDN:先做个自我介绍吧!

詹波:我叫詹波,英文名James,程序员一枚。爱好天文、物理、科幻、设计、编程、音乐、游戏、爬山、游泳。从小喜欢研究制造新东西,首次有用的制造是在八岁时独创的灭苍蝇手枪以及全新设计的火药玩具枪。对未知世界有着强烈的好奇心,终极理想是做一名自由发明家,财务自由后计划首先研究空间发电(非永动机)。

CSDN:JFinal是一个什么样的项目?提供了哪些功能?

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

JFinal的主要特点如下:

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

CSDN:JFinal项目是怎么诞生的?

詹波:JFinal始于2011年创业项目的实际需要。创业前曾使用Rails开发项目,被Rails的开发效率深深吸引,但无奈于Rails开发者稀有难招,以及Ruby语言固有的缺点,故决心打造JFinal,将静态语言与动态语言两者优点结合起来用于创业项目。

JFinal中的J代表Java语言,Final有最终的意思,希望JFinal能成为Java开发者的最终选择。Final还有稳固不变的意思,也因喜欢事物本质,热爱永恒的真理。

CSDN:JFinal的设计思想和理念是什么?有哪些创新点?

詹波:JFinal 遵循大道至简的设计思想。主要创新点:

  • 微内核+全方位扩展架构;
  • Db + Record 模式;
  • CPI模式;
  • ActiveRecord模式Java实现方式;
  • API引导式配置;
  • API引导Validate;
  • 采用Scanner + ClassLoader结合Jetty实现热加载;
  • 极简设计,核心代码约2000行实现Web MVC + ORM。

CSDN:介绍一下JFinal的架构?JFinal实现极速开发的原理是什么?又是如何实现的?

詹波:JFinal采用微内核全方位扩展架构,全方位是指其扩展方式在空间上的表现形式。

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


JFinal实现极速开发主要是因为走的极简设计风格:零配置、代码量少、开发体验连续、无第三方依赖、概念最少化等等。

要实现极简设计,必须要为架构注入灵魂,系统才有自己的极简性格。设计前先在脑海中形成一整套的极简设计思想,让这套思想融入到灵魂的深处,在行动时每动一个设计念头时以此为指导思想,最后的结果就能如愿。

CSDN:讲讲项目开发过程的事情,从立项到发布首个版本之间有什么让你印象深刻的事情?

詹波:JFinal项目始于2011年3月左右,第一个版本大约两周左右开发完成,再用了一周时间将手头SSH项目切换至JFinal。

这期间最令人兴奋的事情是脑海中不断迸发出新的想法,然后立即将想法变为现实,这段时间更加确信可以通过持续地专注来激发创造力,后续工作中也验证了此法的有效性。

CSDN:开发过程中你遇到了哪些困难?是如何解决的?

詹波:开发过程最大的困难就是写代码实现,想法很快就能有,但实现起来需要花费更多时间,代码极简比仅仅实现功能要困难得多。

解决这些问题,需要对各种因素进行深入透彻分析,权衡得到最优方案。

CSDN:你每天投入在JFinal项目上的时间大概有多少?是否有其他人参与了项目贡献?

詹波:不同时期投入时间不一样,如果工作不紧张,每天两三个小时都没问题。最近几个月工作极忙,一般是在临睡前回复一下热心网友们的问题。有很多热心的网友提了很多建议,也有少部分人在Github上提交过代码。

CSDN:JFinal下一步的计划和目标是什么?

詹波:JFinal将一直坚持极简设计风格,在不断优化发展内核的同时,通过扩展的方式加强周边工具设施的建设,进一步提升开发体验。另外jfinal.com大部分构想已经完成,时间允许情况下会开发上线,jfinal.com关注开发者群体,将是完全不一样的模式。

CSDN:将JFinal开源的初衷是什么?你从开源中得到了什么?在开源方面有什么感悟?

詹波:本人是乐于助人的性格,有好东西乐于分享出来。造福于广大的工程师,自己会更快乐,更有成就感。另外开源出来也希望JFinal变得越来越好。

开源给我的感悟是做开源项目需要为其注入思想与灵魂,让其具有鲜明的个性与主张,并且要让更多的人接受并喜欢才能快速发展。乐于分享会使自己变得更快乐、幸福,帮助他人就等于帮助自己!

CSDN:你怎么看待开源以及国内的开源环境?你最希望对其他打算从事开源的开发者说的话是?

詹波:国内大部分工程师大都忙于生计,参与开源相对比较困难,国人对国产开源项目信心不足也是个问题。

建议打算从事开源的开发者在自己喜欢的方向和擅长的领域设定一个目标,尝试做个开源项目,会使你变得更充实、更快乐,以及很多意想不到的收获。

【开源专访】系列文章致力于对国内外优秀开源项目作者、团队的专访,挖掘项目背后的故事和更多技术细节,以及对项目的宣传、推广。同时,我们也希望广大开源开发者和爱好者自荐或推荐更多优秀的开源项目。欢迎留言或@CSDN研发频道。

DialogFragment类介绍 Android Fragment使用详解 Fragment对比Activity - Android碎片介绍 Android 3.0新增日历控件CalendarView Android JSON写入类 - JsonWriter Android JSON解析类 - JsonReader Android获取本机电话号码 ListView自动滚动方法 自定义Android菜单背景 Android OpenGL下截图代码 查看Android应用的详细信息2.3有新方法 Android开发Java图书推荐 Android开发图书推荐 UiModeManager设置夜间模式和行车模式 Android 2.2新增的DeviceAdminInfo类 Android获取摄像头详细信息 Android流量统计TrafficStats类的使用 电子邮件解析android.net.MailTo类 扫描和获取OBB文件信息 Android加速感应器开发平衡球代码解析 StrictMode限制模式API加速你的应用 手势识别兼容Android 1.x和2.x的代码 NativeActivity类在NDK中管理Activity OBB文件和StorageManager类使用介绍 DownloadManager下载管理类2.3新增API介绍 Android平台上的11个感应器你都知道吗 Android 2.3中的java.io.File类新增功能 更轻松的获取APK文件安装时间 Android控件对应表,丰富你的UI设计 Android开发进阶之NIO非阻塞包(八) Android开发进阶之NIO非阻塞包(七) 紧急求教:ScktSrvr(Borland Socket Server)设置问题????????? 关于com与asp的疑惑 怎样读取数码相机的照片,并将它存入sqlserver数据库中 JSP里连接DB2的疑问? 为什么dbgrid的网格颜色属性的更改不是每次都可以。 请教名位大虾!~怎么安装.NET?今天刚买的,却不会装,七张光盘的!~ rose 的问题, SELECT 语句中的WITH TIES作用是什么? 西南交大 农历这么转换成公历?UP有分!急用!问题解决马上给分!不够再加。 关于数组的问题!在线等,谢谢了 不从新发送信息,则无法刷新页面!!! 一个旧声卡怎么才能知道它的型号? 我使出浑身解数,还是装不上sql server2000 ,怎么办? 各位师兄,想问一本书(王国荣的)的书具体内容?! 请问该如何处理?? 请教:关于excel2000链接对象.谢谢() CBC6使用手记--鸡肋 在线等待 如何从一个数据表的某字节中只提出来N个字符!!!!(帮我看一下,谢谢) dbgrid 与 adoquery 的记录如何...? 难道没有人懂水晶报表!??? 季老大帮我搞定!!!!!!!!! 请问该如何处理??在线等 谢谢了!!! 谢谢提供需求分析、概要设计、详细设计、等步骤的样本!!! 用HWiNFO32 V1.22检测机器硬件信息,当检测到“IDE/SCSI Drive(s)”时,硬盘灯常亮并死机,请问是什么原因?是硬件的问题吗? HELP ME AGAIN! 我新买的机器,看看是不是被骗了 谢谢提供需求分析、概要设计、详细设计、等步骤的样本!!! 两个笑话,大家也来帖帖 一个算法,如何快速的从一个大字符串数组里面删除一个小的字符串数组的内容 紧急求救 http://www.driverdevelop.com 好像关了!!! 请问:构件,com,activeX,bean是不是相同的概念?com+和EJB呢? 哪有c++primer第三版? 为何sun one studio在安装模拟器中安装不了6688i 的模拟器?? ComboBox 有问题 我的毕设题目行不行啊? 如何在jsp网页中显示树形目录结构 请问一个计算机本科生出去工作要具备什么条件? 160015.txt怎么取得前面的文件名(160015) 求教高手,java和.net 比,优势在哪里?? 关于wh_callwndproc kook 截获wm-activate 消息 怎样判断两个ACCESS库的表名相同?用代码实现 TRegIniFile有bug? COMEING! D ArcInfo 怎么装不上! 寻求J2EE 入门好书。有电子书最好了,谢谢!!! 动画测试的时候场景总是看不全?? 大侠请进 His mother usually walks to the park. 改为同义句 昆虫记怎么写内容概括要求我们写昆虫记的内容概括..至少600字.求教如何写内容概括... 蜗牛是什么变的 一筐柑橘大约有350个,每次拿3个,每次拿4个,每次拿5个都正拿完,这筐柑橘有几个? His mother usually walks to the park改为同义句 His mother usually____to the park____改为同义句fast 不则名词复数是什么意思 一筐柑桔大约有350个,每次拿3个 每次拿4个 每次拿5个都正好拿完 这框柑桔有几个?PS:关于最大公因数和最小公倍数的 my father usually walks to the park.用go to 改写 现代猿人为什么没有进化成人 苹果 梨 橘子各一筐6筐苹果的千克数=5筐梨的千克数 4筐梨的千克数=3筐橘子的千克数 每筐橘子比每筐苹果 30千克,每筐橘子多少千克? Jenny eats some bread and beef ()breakfast.(填介词) 现在的猿人为什么不能继续进化成人了?现在的猿为什么不能继续进化成人了?人类不是从它们进化来的吗? 一筐桔子大约350个,每拿3,4,5次正好拿完桔子有多少 Dave's birthday party is December 6th同义句 从猿人到人进化了多少次?每进化一次,猿人取的是什么名字? 世界上走得最慢的是什么动物? __________________?yes,his birthday is in december. 建党90周年经验启示 世界上什么动物走的最慢? his birthday is December ___(twelve).填空 芭比公主属于哪个国家 动物为什么走得慢 What is your new friend like?与What does your new friend like?有什么区别? 关于文明礼仪的历史故事,快解答 isher lifestyle the same as yours or[ what are the [ It takes Danny about 20 minutes to get to school.英译英要用英文解释句子 关于文明礼仪的历史故事除了孔融让梨程门立雪还有什么 is his lifestyle the same as yours or __________?what It's u___ to cry for the spoiled milk.如题 英语翻译翻译成英文小作文Lily和Lucy是很好的朋友,以前在一起上学,但是考上了不同的大学,在不同的省份,现在恰好是寒假,两人不约而同在街上相遇了,互相寒暄。 烯烃氧化产物到底是什么啊 What c_____ is the milk?It's w_____. 文明礼仪的历史故事 20字左右 甲乙两个仓库,存货重量相等,从甲仓运走800吨,从乙仓运走500吨,甲仓是乙仓的四分之三,甲乙两仓原有货物多少吨? 连词成句 week was at your there festival a school last food(?)急用 翻译成英语 Lily和Lucy是孪生姐妹. 世界上什么动物走的最慢 运用有关哲学原理,谈谈当前反腐败的重要性以及如何反腐败才能收到实效. All we have to do is to wait怎样分主谓宾吖 什么是世界上走的最慢的动物 Danny wants to be a ( ) .he likes driving .填空 have to do 怎么判断主谓宾?如:I have to go to school. 单烯烃和二烯烃有什么区别 Danny wants to be a cook .改为一般疑问句 I have a dream to be a teacher 怎样分主谓宾吖 单烯烃是什么?那有相应的多烯烃么? 为什么地震时动物搬家 two pieces of advice作主语的话,应看做单数还是复数,其他的如two bottles of water呢? Let’s invite Danny to help us put up the tree.help 与 put up两个动词之间为什么不用to? 1.he to wants to in Beijing go scool造句 2.Danny wants learn in Canada to Enalish all i have to do is to go to my CD shelf 帮我分析下主谓宾英语 英语 英语 2 、在括号里填上恰当的词语( )的双唇 ( )的画笔 ( )地等候( )地散步 ( )地垂落 :It is u_____ to cry over spilt milk.横线上填相应单词的适当形式 ①I have something to do这里依次是 :主、谓、宾、宾补(to do)对吗?②She gave me a pen 这里依次是 :主、谓、宾、宾补(a pen)对吗? 叔卤代烃和氰根离子反应生成烯烃,是怎么反应的?举个例子呗~ 关于赞颂祖国建党90周年的红诗或作文.红诗100或200字,作文400或800字.要求是原创的的啊,老师催的啊,呜呜呜呜,实在不行,各位给篇例文啊,求了啊. I ate 【some noodles】.对括号里提问 烯烃系统命名法 、请举例子 敬当爱党 幸福成长 围绕建党90周年,建立特区30周年,畅谈祖国以及自己家乡,家庭面貌的变化,歌颂党青少幸福成长的过程 我要写一个建党90周年光辉历程的作业, 北京积分落户分数好算门槛高 评分标准偷啥不好偷猪肉 藏哪儿不好藏裤裆财经观察:欧盟坎坷前行20年法国总统奥朗德会见王毅西班牙警察强奸妓女遭开除 被判监禁1中国海关知识产权保护展示厅正式开放杭州一天发生三起酒后落水事件 23岁杭州发布高层次人才“需求榜” 技术研湖北荆门煤矿透水事故续:第一名被困矿南昌市一人大代表涉嫌工程行贿被采取强孟加拉国一列车脱轨 致两人死亡30余西班牙承认与美国在情报搜集方面存在有韩美启动第六轮防卫费分担会谈 意见分任贤良任国家互联网信息办公室专职副主银泰15周年大庆 抢鲜预购卡首次浙江大型留学网站亦邦留学网正式上线中国重拳频出提升巡视反腐透明度 方便遵义市委书记廖少华涉嫌严重违纪被免职中国控烟协会吁问责政府发红头文件摊派专家称伊利方舟工程“双屏互动”实现公首都航空长沙飞杭州航班受爆炸物威胁备上海落实道路交管条例:固定视频举报制越野赛道防撞沟挖到鄱阳湖湿地保护区,“助学金”变网贷疑团重重:贷的80万NASA记录北京雾霾15年 变化触目济南重霾侵袭下的父母抉择:离开或全力淄博:停课在家待不住,学生扎堆图书馆青岛:胶州市大店村700户村民的口罩雾霾天济南小商贩和送餐员的生计 钱不济南:雾霾天跑步人数锐减一半 资深跑预警一出销量翻倍, 青岛口罩村却禁止济南:“小不点”霾天被放倒 医院儿科张继科最新写真曝光 造型多变星味十足雾霾天气持续 高铁成“奔跑的茶叶蛋”罗马尼亚新政府获得议会信任投票(组图大埃及博物馆加紧建设(组图)滕建群:特朗普执政后,叙利亚政局会发在读大学生报名参军,为了走过雪山草地省消协发布消费提示:去澳门买黄金、手嫩模晒性感瑜伽照 凹造型秀柔韧身姿凯西德安东尼分别当选12月东西部最佳威少两次技术犯规被取消 赛季累计技犯
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘