JFinal 3.2 发布,星星之火已成燎原之势 - 开源中国社区
JFinal 3.2 发布,星星之火已成燎原之势
JFinal 2017年08月08日

JFinal 3.2 发布,星星之火已成燎原之势

JFinal JFinal 发布于2017年08月08日 收藏 81

阿里云高性能云服务器,2折起! >>> >>>  

JFinal第一版于2011年3月诞生于公司内部,应用于公司项目后大受欢迎,一年后于2012年3月18日选择在OSChina社区开源。

历经6年工匠精神的打磨,现已进化成生机勃勃的生态系统,星星之火已成燎原之势。

1:jfinal.com极速开发社区注册用户达66036人

JFinal 极速开发社区于2016年6月正式上线,一年两个月零两天的时间注册用户已达66036人,作为一个没有公司支持,也没有任何外部资源支持的个人开源项目,仅凭一已之力干到这个程度,已经是奇迹。

相关链接:http://jfinal.com/share/1

假定中国的java开发者一共有20万人,按照当前的发展速度,明年的这个时间点JFinal将覆盖到全体中国java开发者的66.03%。具有网络效应的项目在网络节点达到某个临界值时,发展速度将呈指数级爆发性增长,如果注册用户过十万需要两年,但达到20万人很可能只需两年半。

有人问我为啥一直对开发、升级jfinal一直保有激情,一直在不知疲倦、十分耐心地回复无数小白的小白问题,一图胜千言,下面这个截图是最好的回答:

每天下班后我会看一遍当天注册用户,看着一个个鲜活的nickName,激情立即满满的,小伙伴们对jfinal的喜爱才是开发、升级下去的根本逻辑与源动力,否则如果面对的是一个乏人问津的项目,任何一个正常人都不可能对此保有六年的激情。

2:git.oschina.net 上 fork、star 数据排名第一

相关链接:http://git.oschina.net/languages/Java

3:问答数4226个,在OSChina 在收录的44246个项目中总排名第五

排前四位的项目分别是:java、android、php、mysql,前四个项目在 OSChina 的收录时间比 JFinal 要早一到四年。超过2008年就已被OSChina收录的Spring。问答数量充分表明JFinal是OSChina十分活跃的项目

相关链接:http://www.oschina.net/question/tags?catalog=1

4:git.oschina.net 与 JFinal 相关开源项目 689 个

该数字是JFinal 2.0版本发布时的4.2倍,相关链接:

http://git.oschina.net/search?utf8=%E2%9C%93&search=jfinal&group_id=&project_id=&type= 

5:与 JFinal 相关博客 1039 篇

该数字是JFinal 2.0版本发布时的1.75倍:

https://www.oschina.net/search?scope=blog&q=jfinal

6:社区累计捐助人数达1526人

有不少小伙伴是多次捐助,有位昵称叫“杜福忠”的小伙伴甚至每个月捐助一次。

jfinal 从来没有在任何时间、任何地点推动或宣传过捐助的事情,所有捐助者是因为jfinal的口碑自发而来,这样得来的数据才能真实反馈出jfinal的口碑。

相关链接:http://www.jfinal.com/donate

以上是坚守六年多的工匠精神,超过一千多项的功能增强与改进,帮助无数小白所取得的成果,但jfinal追求极速开发的脚步从未停止过,以下是JFinal 3.2 的主要增强与改进:

1:action支持形参注入

public void action(Article article, int id) {
   ...
}

action 形参注入早在两年就实现过,只不过当时认为实现不够简洁,学习成本也有一定的上升,在正式发布之前删除了此功能。action形参注入有利于与 swagger 之类的框架集成。

该功能模块由社区大神 @玛雅牛 贡献,实现非常简洁有力,便于扩展。 @玛雅牛 还贡献过 BaseModel 生成这类重类级的功能模块,极大地推动了 JFinal 发展进程,非常感谢 @玛雅牛 的贡献

2:模板引擎支持spring、spring boot

<bean id="viewResolver" class="com.jfinal.template.ext.spring.JFinalViewResolver">
  <!-- 是否热加载模板文件 -->
  <property name="devMode" value="true"/>
  <!-- 配置shared function,多文件用逗号分隔 -->
  <property name="sharedFunction" value="/view/_layout.html"/>

  <!-- 是否支持以 #(session.value) 的方式访问 session -->
  <property name="sessionInView" value="true"/>
  <property name="prefix" value="/view/"/>
  <property name="suffix" value=".html"/>
  <property name="order" value="1"/>
  <property name="contentType" value="text/html; charset=utf-8"/>
</bean>

如上所示配置一个简单的bean即可,spring boot 的配置方式见jfinal手册

此外,JFinal Template Engine 已被独立发布为Enjoy项目,集成spring时可以直接使用enjoy 3.2,只有171KB的大小,并且无第三方依赖,传送门:http://git.oschina.net/jfinal/enjoy

3:添加ClassPathSource支持从class path及jar包读取模板文件

engine.setSourceFactory(new ClassPathSourceFactory());

通过上面一行代码,即可配置engine从class path加载模板文件,如果未找到则去jar包中加载,非常适合spring boot下面使用。

4:模板引擎添加extension method功能

public class MyIntegerExt {
  public Integer square(Integer self) {
    return self * self;
  }
}

engine.addExtensionMethod(Integer.class, MyInteger.class);

上面的代码即实现了类似于ruby中的mixin功能,为 Integer 添加一个求平方的功能,在模板中可以通过 123.square() 来调用这个方法。得益于jfinal的极简设计,实现上述功能只用了 87行代码。

5:ActiveRecordPlugin支持自动类型转换

int count = Db.queryInt("select count(*) from account");

以上代码,JDBC会返回 Long 型数值,所以在老版本jfinal中会出现类型转换异常,3.2版本对此做了自动类型转换。此外,对于Model、Record、DbPro中所有涉及String、int、long、float、double、short等类型都做了类型转换处理,使用 3.2 版本会无比顺滑。

6:添加 IDbProFactory,支持继承 DbPro 来定制 DbPro 功能 

public class MyDbPro extends DbPro {
  ....
}

arp.setDbProFactory(new MyDbProFactory() {
  public DbPro getDbPro() {
    return new MyDbPro();
  }
});

通过如上代码即可对 DbPro 的功能进行定制与扩展。

7:文件上传支持input域使用同名name属性

使用该功能,只需要将 cos 升级到 2017.5 版本即可。

JFinal早已不是六年前的星星之火了,仍未尝试过jfinal朋友们如果还不试着改变一下,开发速度会被后起新生代小鲜肉远远甩在后面,尝试jfinal的成本十分之低,仅仅两万多行代码实现了完整的MVC + ORM + AOP + Template Engine,这一切全被浓缩在了一个jar包之中。

ONE MORE THING:JFinal 3.2 有近50项增强与改进,篇幅所限在此不在赘述。JFinal俱乐部将在本周六晚9点直播讲解3.2的新功能,加入俱乐部相约周六晚直播间,我们不见不散:http://jfinal.com/club

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:JFinal 3.2 发布,星星之火已成燎原之势
分享
评论(161)
精彩评论
173
这次发新版本时间非常仓促,差点就下班了,现写现发。忘了感谢 action 参数注入功能的贡献者 @玛雅牛 了,十分不好意思,大家将我条回复顶起来,非常感谢 @玛雅牛
49
我赶紧抢个沙发, JFinal 牛逼
23
2012年底接触JFinal,2013年3月份创业公司开始内部培训启用JFinal,2014年已经成为公司主框架,2014年底开始加入JFinal生态成为培训讲师,累计已有30W次观看,一路走来,激情始终被JFinal带领着,每次与JFinal作者深夜交流,思想碰撞的时候,都能感受到作者对于极简设计的执着,再次祝JFinal燎原之火,生生不息。:bowtie:
19
板凳
9
我赶紧抢个沙发, JFinal 牛逼
最新评论
0
“以上代码,JDBC会返回 Long 型数值,所以在老版本jfinal中会出现类型转换异常,3.2版本对此做了自动类型转换。此外,对于Model、Record、DbPro中所有涉及String、int、long、float、double、short等类型都做了类型转换处理,使用 3.2 版本会无比顺滑。”
看到这句话。。。。这个版本真是不错:joy:不过我都干完了。。。
0

引用来自“JFinal”的评论

这次发新版本时间非常仓促,差点就下班了,现写现发。忘了感谢 action 参数注入功能的贡献者 @玛雅牛 了,十分不好意思,大家将我条回复顶起来,非常感谢 @玛雅牛
顶你一个!
2
:smiley:
0

引用来自“i十十”的评论

@jfinal 哪里有3.2的changelog。看不到这个,不敢升级啊。好几个项目都是线上的项目
在 jfinal 官网首页的右侧可以下载到 jfinal 3.2 changelog

jfinal 3.2 手册的第 13 章详细讲了涉及升级的方法,如果你是 3.0 以及更高版本升级,只需要注意 Ret 对象的使用就可以了,升级极其平滑
0
@jfinal 哪里有3.2的changelog。看不到这个,不敢升级啊。好几个项目都是线上的项目
0
放弃对spring的支持,坚持自我,才是精简的精髓
0
波总,威武,又出大招了!
0
支持!
1
任何框架都是他自己的适用范围,支持JFinal这种简单风格的框架。并不是所有项目都需要大型框架、spring全家桶,看看前端 arv三足鼎立就知道了。
0
6的飞起的 jf :heart:
1
2012年底开始在公司主力项目中用,一下过去4年多了
0

引用来自“山哥”的评论

为什么我还是用SpringMVC。

引用来自“我自横刀微笑”的评论

兄弟 大清亡了:smile:

引用来自“xmut”的评论

我相信大部分项目经理招聘还是会选择Spring :grinning:
spring走的是大而全路线,在大而全的同时还提供了很强的灵活性,但是这种灵活和易用是有代价的,对使用者的要求很高
0
外包项目用spring成本太高了,竞争激烈,用一个简单的国产框架,可以提高不少竞争力,堆起人来更便宜。
0

引用来自“JFinal”的评论

这次发新版本时间非常仓促,差点就下班了,现写现发。忘了感谢 action 参数注入功能的贡献者 @玛雅牛 了,十分不好意思,大家将我条回复顶起来,非常感谢 @玛雅牛

引用来自“dqcy”的评论

你这JFinal开源,怎么还整了一个每年都收费的俱乐部,或者你可以把俱乐部的那部分东西按俱乐部先获得,然后过段时间后开放普通会员,不然我们经常支持捐助,后来我们还是只能了解到一个底壳子,能不能大度点,开源那部分按照是否会员时间先后开放掉?

引用来自“JFinal”的评论

jfinal 项目、enjoy 项目、所有文档、社区功能等等几乎所有资源都是免费且开源提供的,而 jfinal club 是增值服务,不一定是每个人都需要的,社区服务器、带宽、开发、维护等需是需要资金支持的

jfinal 开源的前五年都是我自己掏钱来负担,但如果希望做长远、做强大有外部资源支持会更好,希望你能理解

引用来自“aiyouuncle”的评论

是这样的,一个好的东西想走长远,想走更好,任何的成本和付出都由作者无条件提供的话,是不可能的。Jfinal目前已然成为国内至少是我所碰到的最简洁最给力的框架了。而如果说最终因为资金问题导致jfinal出现问题的话,我想使用过jfinal的人基本都是不能接受的。但如果真的出现这种情况,我想波总为此项目募集的话,我会支持的。真诚祝jfinal如现在这般,越走越好
在过去的六年里,支撑激情的主要是成就感与用户的需要感,但是为了可持续发展,有资源可以使用才是保证。

此外,推出收费的俱乐部服务也可以验证一下是不是真有人为此而付费,只有大家肯付费,才能真正证明项目才是有价值,项目才有存在的必要,否则很可能是自嗨

感谢你的理解与支持 :thumbsup:
0

引用来自“山哥”的评论

为什么我还是用SpringMVC。

引用来自“我自横刀微笑”的评论

兄弟 大清亡了:smile:

引用来自“xmut”的评论

我相信大部分项目经理招聘还是会选择Spring :grinning:
spring 现在的生态与用户量都是占优的,其实 jfinal 走的是与 spring 相反的道路。jfinal 追求学习成本尽可能低,代码量尽可能少,开发效率尽可能快,可维护性可读性尽可能高

起码我有个执念,jfinal 坚持以上这些原则去打磨,一定可以拥有巨大的用户量
0

引用来自“JFinal”的评论

这次发新版本时间非常仓促,差点就下班了,现写现发。忘了感谢 action 参数注入功能的贡献者 @玛雅牛 了,十分不好意思,大家将我条回复顶起来,非常感谢 @玛雅牛

引用来自“dqcy”的评论

你这JFinal开源,怎么还整了一个每年都收费的俱乐部,或者你可以把俱乐部的那部分东西按俱乐部先获得,然后过段时间后开放普通会员,不然我们经常支持捐助,后来我们还是只能了解到一个底壳子,能不能大度点,开源那部分按照是否会员时间先后开放掉?

引用来自“JFinal”的评论

jfinal 项目、enjoy 项目、所有文档、社区功能等等几乎所有资源都是免费且开源提供的,而 jfinal club 是增值服务,不一定是每个人都需要的,社区服务器、带宽、开发、维护等需是需要资金支持的

jfinal 开源的前五年都是我自己掏钱来负担,但如果希望做长远、做强大有外部资源支持会更好,希望你能理解
是这样的,一个好的东西想走长远,想走更好,任何的成本和付出都由作者无条件提供的话,是不可能的。Jfinal目前已然成为国内至少是我所碰到的最简洁最给力的框架了。而如果说最终因为资金问题导致jfinal出现问题的话,我想使用过jfinal的人基本都是不能接受的。但如果真的出现这种情况,我想波总为此项目募集的话,我会支持的。真诚祝jfinal如现在这般,越走越好
0

引用来自“山哥”的评论

为什么我还是用SpringMVC。

引用来自“我自横刀微笑”的评论

兄弟 大清亡了:smile:
我相信大部分项目经理招聘还是会选择Spring :grinning:
0
改进了50项,我给点50个赞~~
0
@JFinal ,今天刚决定要升级2.2为3.1了,突然看到发布新版本了,:satisfied:,赶紧下载下来看看,支持波总!!升级最新版!
1

引用来自“andying”的评论

祝贺Jfinal, 我还在用1.8, 我前段时间刚为公司开发了一套移动端系统,用的就是Jfinal,效率超高。
非常看好Jfinal的发展.

引用来自“JFinal”的评论

1.8 后续版本添加了很多重大功能,例如 Model 的 Bean 化,拥有 getter setter,自动生成 model/bean,自动生成 ActiveRecordPlugin 的映射文件,模板引擎等等

是时候升级了,just do it

引用来自“andying”的评论

还没做好准备, 系统已经上线了, 担心自已没升级好影响生产使用,
项目还真没从一版本升迁至另一版本过.:smiley:
如果是老项目,不是经常改动与升级,沿用老版本确实是个省事而稳妥的办法。新项目 3.2 用起来 :smile:
顶部