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

【开源专访】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研发频道。

[企业开源系列]后起之秀Facebook凭什么挑战互联网霸主Google? 谷歌推出免费标签管理应用Tag Manager McAfee CTO Phyllis Schneck被任命为NPPD副部长 Bootstrap 3.0发布 更好地支持移动端和响应式开发 国内创业公司QingCloud的魄力:做一个世界级的IaaS服务 从毫秒到微妙,纯硬的闪存阵列IBM Flash System来了! 中科创达邹鹏程:黑客精神逐渐被人遗忘 有点让人感伤 通过讲故事的方式来设计优秀网站 “肮脏的”IT工作排行榜 Clank:带有SCSS的高效率移动应用原型框架 欧朋 CTO 罗志宇:谈Sphinx游戏引擎的前世今生 John Carmack大神亲手操刀,Oculus Rift SDK即将发布 从南极之争谈软件架构十个技巧,及成功团队具备的气质 Imation重拳出击,推出新型混合存储平台 张建华:FusionSphere不是简单的OpenStack发行版 Chrome 29来了:地址栏变得更“兼容” Android版增WebRTC 工程师谈在Facebook工作最糟糕的事情 用Scala重构19楼——SDCC 2013讲师王治专访 10款最新且超实用的开发框架 创业公司为什么应该写博客? 向iOS SDK看齐:Facebook Android SDK迎来重大更新 闯向海外:对话AppFlood产品总监陈霄 高手爱跨界:联想智能桌面,27寸大Pad抢先试玩 惠普第三季度收入272亿美元同比下降8% 高管重新布局 原来我们会出这个价钱购买“廉价”iPhone Web设计过程中该做和不该做的 新细节披露:通过电信合作 美国75%网络遭NSA监控 实时Bug检测工具Bugsnag发布API更新 【观察】一大三小:亚马逊,微软、谷歌、IBM ,IaaS四足鼎立 “化云为雨”一小滴:北京,3G手机+蓝牙打印机实现智能抄表 金山云与蓝汛联合提供云基础设施服务 如何取消vb默认的应用程序忙对话框 请问这段代码哪里有误? 请问各位高手制作MediaPlayer问题,急急!!要交作业。 VB能做绿色软件吗?几十K的! &&&&&&小弟现在初学COM,有谁留下QQ,帮助小弟,小弟感激不尽。 十万火急 我想开发一些牌类和棋类的游戏,有什么外国的网站可以学到,和开放源代码。知道的请帮帮忙(100) 万分感谢 怎样配置运行.exe的CGI程序 请教,如何改变 TreeView的背景颜色? 一个算法问题 誰能介紹廣州几個做掌上電腦開發的牛一點的公司? 如何在客户端的Web Service请求中加入SOAP标头 Fortran中怎样实现类似 全局变量的实现方法。 关于无边框窗口 几个名词的英汉翻译,这样翻译对吗? JBuilder6个人版的注册号谁知道?急用!!! 高分求教 哪儿可以下载InstallShield 6.22(在线等待,急!!!!) 我要installshield 怎样backupwin98的注册表? ****************如何生成安装文件************* 求教这样一个角度算法 征求好网址!大家把收藏夹里的好网址贡献出来吧! 中国队惨了!!!!!!!贝克汉姆已加入土耳其队! 《Applied Cryptography》,这是本什么书? 一个12位的整型,用unsigned long可以容纳吗? Perl以后会变成什么样呢? 谁能帮我!错手把逻辑盘的东西删了,能不能恢复。 下面添加用户的代码能运行吗,我怎么运行不起来,50feng VC文本编辑器没有参数提示 在Delphi中如何使图像淡入淡出? 猜猜中国今天输几个,本人大胆预测10-0 为什么我这里总是405错误呀?Method Not Allowed……The requested method POST is not allowed ADO技术问题! HOOK还是不行! 在ocx中如何使用一个ActiveX,不算使用IMPORT,还有没有别的方法呢?(大送100分) API中的SETTEXTCOLOR函数! 部署实体bean的问题(jbuilder6+weblogic6)??? 怎么样自动增加一列在select UserID,AreaCode from table 。在先等候,先答来的100 谁能帮我!错手把逻辑盘的东西删了,能不能恢复。 调查:各位都用哪里的主页空间? 猜猜中国今天输几个,本人大胆预测10-0 我不喜欢南美球队,球风太差,犯规隐蔽,演戏一流!!! 请问这段代码哪里有误?我用的asp+access。急急急急急急急急急急急急急急! 我想做一个类,提供ONMOUSERMOVE事件给用户接口,怎么做,在线等候? 请问关于软件架构,框架和构架的问题 看看别人吧!!!再看看我们!!! 怎么样自动增加一列在select UserID,AreaCode from table 。在先等候,先答来的100 全民健身 有谁使用过水晶报表? 氯气和金属反应是否要加热一定需要加热么? 蓝藻和绿藻细胞的细胞膜结构(包括糖类,磷脂双分子层,以及横跨细胞膜的蛋白质)是否完全相同?是否有相同之处,也有不同之处? 求离子交换柱层析法和拥有分子筛作用的(叫什么忘了)的两个实验报告或操作详细说明一个是离子交换柱层析法另一个分子筛作用的(叫什么忘了) 硅与氯气反应必须加热吗,为什么? 下列关于有机化合物性质的叙述,错误的是A、大多能溶于水B、大多熔点低,受热易分解C、大多易燃烧D、大多不导电 凝胶过滤层析中和凝胶电泳中的分子筛效应有什么不同?为什么?要求比较标准的答案,这是王镜岩版生物化学的一道课后习题. 谁用过醋渣?有没有作用?3Q今天来个推销醋渣的,是做醋后的下脚料,山西这个东西不少,给山西的朋友打电话都没有人用,什么酸度高,我给牛试验了一下,可能没有吃过,在说这个东西稍微有点酸, 下式表示一种有机物的结构,关于它的性质的叙述中1mol该有机物最多能和8molNaOH反应 羟基可以和氢氧化钠反应吗?有什么条件呢?..3Q 用托盘天平能称出11.7克食盐吗? 什么是蒸馏水能不能喝 有机化合物的性质老师好,我是高一学生,最近正在学习《重要的有机化合物》,对烷烃、烯烃、乙醇、苯、酯等的分类和结构式的特点(羧基、羟基、碳碳双键)比较模糊,请老师指教. 丙二醇甲醚和丁醚有什么区别 制取氯气为什么用浓盐酸和HCl在水溶液中的电势电能有关的... 请问“福建三明哪里有卖杜邦线和杜邦端子?”本人急着要用?是用于单片机的 一缩二丙二醇甲基醚与二丙二醇甲醚是同一种物质吗? 已知:KClO3+6HCl==KCl+3Cl2↑+3H2O,现用K35ClO3和H37Cl反应,求制备的氯气的式量是多少? 2-甲基丙烯结构式?2-甲基丙烯结构式是什么?结构简式? 乙基丙烯基乙炔的结构式? K35ClO3晶体与H37Cl的浓盐酸反应后,生成氯气、氯化钾和水.下列说法正确的是( ) A.氯化钾既不是氧化产物注:K35ClO3为KClO3,其中Cl为Cl-35,下同.K35ClO3晶体与H37Cl的浓盐酸反应后,生成氯气、氯化钾和 求乙烯丙烯化学结构式就内种结构式 2,4-辛二炔 2,2,5,5-四甲基-3-乙炔 异丙烯基 结构式 氯化钾制氯气原理 丙烯结构式碳碳双键怎么连接中间的那个碳? 什么是异丙烯,它的结构式是什么? 只有C组成的物质不可能是有机物吗 TQ2440杜邦线用的哪种规格的? 异丙醇和二丙二醇丁醚能否共沸,如果行的话共沸点多少.什么比例最佳? 用人口腔上皮细胞做观察DNA和RNA在细胞中的分布实验时,需用甲基绿吡罗红染色剂分别给涂片进行染色 为什么错 利用凝胶层析分离混合样品时,怎样才能得到较好的分离效果 2-丙醇怎么生成醚 方程式 蒸馏水能喝吗 甲基绿和吡罗红染色剂为何现配现用高中生物题 在京东上买的杯子,盖子的材料是PPH(丙二醇苯醚,分子式 C 6 H 5 C 3 H 7 O 2 ),味道比较大,问有毒么PPH有那么大的味么? “蒸馏水”能喝吗? 环丙烷和丙烯是同分异构体吗 丙烯分子中三个碳原子在同一条直线上吗 蒸馏水可以喝吗﹖ 丙烯的同分异构体类型有哪些 丙烯中的甲基为什么会把与其相连的有双键的碳原子的电子推向另一个双键碳原子? 氯气通入碘水中会发生什么反应? 高锰酸钾加热制氧化学反应方程式 细胞膜之所以具有选择透过性是因为细胞膜上的哪种物质? 请问蒸馏水能长期喝吗? 高锰酸钾制取氢气化学方程式 蒸馏水有不干净的东西吗 氯气与碘可以在水中反应吗? 甲基绿吡罗红试剂如何配制? 电路板用到5V和12V的电压源,我把这两部分分在了两块板子上,中间用杜邦线连接传输信号但是两个电压源的地信号不是同一个,导致前边的信号传不到后边来,求怎么解决?有人说用飞线,就是用 氯气通入水中,随水中pH的升高,生成HClO减少而ClO-增多,消毒效果降低,为什么? 高一生物中甲基绿吡罗红染色剂配方须掌握吗 怎样制取纯净的氢氧化亚铁? 铜氧化的化学方程式Cu 是怎么变成Cu2(OH)2CO3的 分子筛填充量是怎么计算的? 氢氧化亚铁的制备实验室如何制取 什么事是葡聚糖啊?什么是葡聚糖啊,他有什么作用啊?哪里有卖的啊? 吡罗红和甲基绿染液如何配制? 制取氢氧化亚铁的过程中,如何制得氢氧化亚铁沉淀(至少能存在较长时间)提示:如何减少氧气对生成的氢氧化亚铁的氧化 丙二醇燃烧的化学方程式怎么写? 凝胶过滤层析中和凝胶电泳中的分子筛效应有什么不同,请尽量全面 蒸馏水能不能喝?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘