
JFinal 第一版于 2011 年 3 月诞生于公司内部,应用于公司项目后大受欢迎,一年后于 2012 年 3 月 18 日选择在 OSChina 社区开源。
历经 6 年工匠精神的打磨,现已进化成生机勃勃的生态系统,星星之火已成燎原之势。
1:jfinal.com 极速开发社区注册用户达 66036 人
JFinal 极速开发社区于 2016 年 6 月正式上线,一年两个月零两天的时间注册用户已达 66036 人,作为一个没有公司支持,也没有任何外部资源支持的个人开源项目,仅凭一已之力干到这个程度,已经是奇迹。
假定中国的 java 开发者一共有 20 万人,按照当前的发展速度,明年的这个时间点 JFinal 将覆盖到全体中国 java 开发者的 66.03%。具有网络效应的项目在网络节点达到某个临界值时,发展速度将呈指数级爆发性增长,如果注册用户过十万需要两年,但达到 20 万人很可能只需两年半。
有人问我为啥一直对开发、升级 jfinal 一直保有激情,一直在不知疲倦、十分耐心地回复无数小白的小白问题,一图胜千言,下面这个截图是最好的回答:
每天下班后我会看一遍当天注册用户,看着一个个鲜活的 nickName,激情立即满满的,小伙伴们对 jfinal 的喜爱才是开发、升级下去的根本逻辑与源动力,否则如果面对的是一个乏人问津的项目,任何一个正常人都不可能对此保有六年的激情。
2:git.oschina.net 上 fork、star 数据排名第一
3:问答数 4226 个,在 OSChina 在收录的 44246 个项目中总排名第五
排前四位的项目分别是:java、android、php、mysql,前四个项目在 OSChina 的收录时间比 JFinal 要早一到四年。超过 2008 年就已被 OSChina 收录的 Spring。问答数量充分表明 JFinal 是 OSChina 十分活跃的项目
4:git.oschina.net 与 JFinal 相关开源项目 689 个
该数字是 JFinal 2.0 版本发布时的 4.2 倍,相关链接:
5:与 JFinal 相关博客 1039 篇
该数字是 JFinal 2.0 版本发布时的 1.75 倍:
6:社区累计捐助人数达 1526 人
有不少小伙伴是多次捐助,有位昵称叫“杜福忠”的小伙伴甚至每个月捐助一次。
jfinal 从来没有在任何时间、任何地点推动或宣传过捐助的事情,所有捐助者是因为 jfinal 的口碑自发而来,这样得来的数据才能真实反馈出 jfinal 的口碑。
以上是坚守六年多的工匠精神,超过一千多项的功能增强与改进,帮助无数小白所取得的成果,但 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://ift.tt/2vAwsRj
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://ift.tt/2vi2yP8
The post JFinal 3.2 发布,星星之火已成燎原之势 appeared first on Linuxeden开源社区.
http://ift.tt/2vAGdir
没有评论:
发表评论