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

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

六年亲历,见证中国大数据技术与应用时代的到来 Mailbox:日支撑过亿信息数据库的性能调优及集群迁移 PayPal前CTO 在美国改变世界的乌克兰犹太人 放弃Bootstrap&amp;Foundation,迎接Semantic UI? 一键分享:iOS版Google+发布SDK InMobi杨娟:中国移动游戏如何挑战全球? Adobe再遭APT攻击:数十G源代码及290万用户信息失窃 程序员,如何在工作中崭露头角? 国内外三个不同领域巨头分享的Redis实战经验及使用场景 这是一场潜在的战争:谷歌与Facebook、苹果在搜索上的博弈 设计新闻类网站需要注意的关键点:移动友好、宽带…… 直接开始用:5个免费的在线思维组织工具 招聘开发者常见的九大误区 开源影响销售,维护赞助商? 盘点黑客攻击途径:最常用的7个策略及简单的防护方法 专访AngularJS框架创始人Misko Hevery:让Web开发更便捷 果粉的又一个节日:新iPad或于10月22日发布 新车间李大维:到集装箱里来看创客嘉年华 亚马逊推“登录与支付”功能 直接冲击PayPal Google编程之夏新里程碑:5000万行源代码 8500名学生开发者 非常实用的15款开源PHP类库 Runnable:一站式代码片段服务平台,打造编程界的YouTube 谷歌向所有开发者开放Google App Engine PHP Runtime “沟通”电子表格和矢量图形的“桥梁”:在线可视化工具Raw Facebook北极圈数据中心,Open Compute Project的力作! 最后三天!4折抢购2013移动开发者大会门票 电子书追踪统计,App Annie for eBooks上线 先驱还是模仿者?细数海外移动应用推广平台 IDC:PC出货量下滑终于放缓 联想销量再次第一 为什么说,用一块屏幕玩游戏是远远不够的? 编写代码?先熟悉一下编程语言界限吧! 关于网线!高分!!!!! 关于生成文件的方法? 课程表开发 请问各位前辈,是否只有新增加的字段才有可能成为计算字段?谢谢! 俺要写一个简单的文本的报文,string类型的 关于生成文件的方法?..... 有谁能告诉一下我CVS和SSF是什么?,具体是指些什么?? WIN2K 的问题:1、怎么允许本地普通用户(user)关机;2、怎么能让本地普通用户开机后,客户机连接到SQL SERVER?3、为什么我的SQL量SERVER2K需要停止然后再启动客户才能用? 如何用VB把存储在ORACLE库中的图片字段取出成.JPG格式的图片文件????急在外出差呀多谢了~~~~~ 如何退出函数?exit function??? 测试2000的TCP/IP是否通,用什么命令 求助开发课程表提示 (*****向斑竹你提个小见意,大家最好都来看看,这个想法好不好!****) 为什么我做的增加功能有两个必须要按两次“添加”按钮才能新增一条记录啊? 很急,请教高手,如何把一个ip格式的字符串转换成ip类型,不是用getbyname(),而是像int和string转换一样的概念 请问如何让基于对话框的工具条一开始就浮在上面 来者有分,关于ado的 毛子青论文<<动态规划的优化>>,一个最长子序列的算法,请高手看过来(给出c实现代码的送20分!) 在鼠标单击时间中,可以使用什么函数取得鼠标点击处的坐标值 怎样在单击左键时弹出PopupMenu? 连续20多天加班,近来明显感到体力透支,做个调查!!!(有分) ASP调用VB编写的ActiveX DLL的问题 请教一sql语句 在Unix下用cc(实际上是cc_bundled文件)编译c程序时,报错“const" will become a keyword,或者告诉我“Function prototypes are an ANSI feature" 为何加入winsock2.h后会出现很多问题? 热烈庆祝:Kingron重出江湖!!!菜鸟们有福喽……散分 you shen me qu bie ? please tell me , xie xie ! [■■■Delphi猛料■■■]V1.3发布~~~~~~~更新到2001.12.12 提问:如何在ToolBar上加控件? 我在OLE里调用了word2000文档,为什么只显示第一页,我查了半天资料都没有解决,请帮我 哪里有多媒体软件制作论文啊? 继续请教各位前辈:能否将非新增加的字段定义成计算字段?谢谢! 软件创意、需求大汇集:列创意,拿专家分,120分值大赠送(以后可继续追加) 局渔网 巨简单问题~~~ 进来有分,回答多分,不够再加!!! 关于关闭和启动数据库的问题,很急的!! java VS c#^-^ ?? 请进 寻求QuickReport3以上版本 for Delphi3 的源代码或者安装包? 請問哪大俠用過 ibm 的 bridge2java啊,我把Excel的所有類都導出來了,但它的QuickExcel.java文件還是運行不了, 求救!新装了一块硬盘,为何找不到呀? SetWindowLong函数在delphi里可用,为什么在c++builder 中不能用??? 用弹出式菜单命令弹出一个dialog,可以响应键盘,可是不响应鼠标? 请教,Inserts类是拿来干什么用的? !!!急急急!!!怎样在WIN2000下把NTFS转换成FAT32啊。数据不丢失。 回复太短!或太长!!! visio2002的数据库建模,能不能生成SQL脚本? 急急啊,有關servlet的問題,源碼如下: 添加数据的问题 坐标问题 unix下的nfs Merry Christmas! 给分!祝大家一路发! 焊锡大多是63%锡的,另外37是什么?铅是有毒的啊!吸入焊锡发出的烟会不会中毒啊?市场上无铅焊锡很少啊!另外松香怎么用,用100%酒精混合使用? 海水可以结冰么?不可以,因为大海里的水含有盐分,有盐的东西都不会结冰的. 甲物体质量为乙物体的三分之一,乙物体体积是甲物体体积的2倍,求乙物体的密度明天就得交 哪里有卖无铅焊锡丝和吸锡线的?最好在小白楼附近,别的地方也行.大概什么价钱?吸锡线一定要小日本的,没办法质量好. 海水结冰温度是多少? 有甲乙两金属块,甲的密度是乙的5分之2,乙的质量是甲的2倍,那么甲的体积是乙的多少? 海水结成的冰是咸的马? 海水结冰问题冻牛奶时,冰和奶是分开的 冻豆腐会留下空室海水结冰盐会留在里面吗 甲物体的质量是乙物体的3倍,使甲,乙两个物体的体积之比为3:2,求甲,乙两物体的密度之比 海水结的冰是咸的吗? 关于海水结冰问题海面上的水结冰,结成的冰融化后与没有结成冰的水的含盐量大概是多少比多少,如果给出各是百分之几更好.还有把海水晒成盐这种工艺叫做海水什么? 有甲乙两物体,家的密度是乙的密度的三分之二,乙的体积是甲的体积的四分之五,那么甲的质量是乙的质量的多少倍,快 急 设计实验验证海水结的冰是淡的还是咸的.海水是淡的还是咸的,请利用厨房里的物品,设计实验模拟海洋环境制作“海冰”、并设计实验证明海冰是咸的还是淡的,要实验具体步骤。 中国那些地区海水结冰了? 澳大利亚东北部海域有大量的珊瑚礁,分析这些珊瑚礁的正面作用. 为什么海水是咸的.而海上的冰却是淡的? 海水易结冰还是河水易结冰? 珊瑚礁群分布在澳大利亚的什么海域? 海水为什么这么咸?南北极的冰是不是"咸冰"?这么咸对人类有什么好处?真的没想到,我第一次下海,就是这样的感觉.海水太咸.所以想到了这些. 家庭和实验室常用的温度计是根据什么的规律来测量的 有谁知道除了水银外,在常温下密度大于2的液体,混合液体也可. 为什么海水不结冰呢? 固体密度大概是液体密度的多少倍? 常温常压下为液体且密度大于水的物质1,苯;2,硝基苯;3,溴苯;4,CCl;5,溴乙烷;6,乙酸乙酯 怎么提纯焊锡中的锡?在家搞实验. 固体密度大于液体密度? 索马里半岛的沿岸热带沙漠气候的形成愿因? 如何从助焊锡中提取焊锡 河水和海水哪个更容易结冰 这句话对么?在秘鲁寒流影响下,沿岸热带沙漠气候所跨经度范围广 海是河流汇聚而成的,还又流道各个河流,为什么海水是咸的,而河水是淡的?为什么呢? 为什么海水比河水难结冰 澳大利亚上的热带沙漠气候和非洲撒哈拉沙漠在形成原因上的共同点? 压力表锡焊用焊锡量多少的焊锡丝 为什么海水会又原先的淡变咸 怎么样求固体,液体的密度用五种方法测量物体的密度,方法越多越好。、文字说明,最好有图画,要讲清楚,不能有遗漏, 如何在焊锡丝中分离出纯锡 为什么海水咸,河水不咸 540kg的水化成冰 体积是多少 焊锡丝焊接时为什么锡会飞溅 为什么海水是咸的而河水、湖水是淡的呢? 1kg的水化成冰它的质量、体积分别是多少? 液体沸腾的两个条件是: 海水为何是咸的 甲乙两木块的质量比为3:2,其体积比为1:2,则其密度比为多少? 液体沸腾的条件 金属温度计\电子温度计的原理 甲乙两质量分布均匀的物体的体积相同,它们的质量之比是5:3,则它们的密度之比是_________.若甲截去3/5, 海水为什么不会结冰? 温度计的原理问一下温度及时利用什么原理制作的?温度计的刻度是怎么画的?每一度之间的刻度是怎样计算的?为什么温度计选择酒精而不选择别的液体?是因为酒精防冻吗?希望可以说的详细 海水结冰是盐为什么会分离出来? 焊锡是锡铅合金,把铅加入锡中制成合金的主要目的是增加强度和抗腐蚀性生铁和钢是含碳量不同的铁合金,其中生铁的含碳量大于钢的含碳量这两句话 哪句对? 温度计的原理是什么? .冬天,小明在海边散步,发现路面上的水结冰了,但海水并没有结冰,他猜想:可能是海水中含有盐,导致凝固表格 制造焊锡时把铅加进锡中的重要原因 海水会不会结冰?如果不会结冰那为什么南极和北极会结冰? 某物质的密度是105kg/m3,该物质的状态是?a.固态 b.液态 c.气态 d.无法判断额,不好意思啊.密度是1.5kg/m3啊 制造焊锡时,把铅加入锡的主要原因 海水为什么不会结冰吗? 什么状态的物体密度大 固态还是液态还是气态
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn