JFinal 中度使用体验
使用 JFinal 开发了好几个项目,谈谈 JFinal 的使用感受:这个框架是国人开发的一款 Java Web 框架,实际使用验证作者詹波介绍的特征,毫无虚言,非常好的东西。极速是开发效率的总结。使用 JFinal 让你感觉比笨重的Struct框架,轻便得多,如果你动手能力强,自己组建框架,Servlet + DBUtils + Apache 一些组件,可能更全面,但开发效率上还是和 JFinal 有点差距的。因为 JFinal 的 ORM 很独特,你几乎不用编写额外的实体类,就能直接操作数据库的数据了。
JFinal 的ORM 很独特强大,开发者只需要扩展 Model 类,就可以对数据进行基本的甚至高级的操作,我觉得它严格来说不算是 ORM,而是介于 ORM 和 JDBC 的东西,强壮不失灵活性。实体属性的动态扩展也很够用,put 一个属性即可,实在太方便了。至于性能,我没有实地测试考察,只看了一些源码,我觉得性能肯定比直接使用底层 SQL 的 JDBC 要差一些,毕竟大量使用反射特征。这是我最满意的模块。
JFinal 的路由器,也很独特,它和主流的路由器做法有很大的区别,比使用正则形式的路由更易懂好理解,功能上也够用了,参数的传递,url的美观度都能把控。我使用过 Django,Ruby on Rails,Sinatra 和 Martini,老外设计的路由器框架,有些还是比较有参考价值的,比如 group,参数的类型等等。
JFinal 的拦截器也很棒,控制力很细致,都能做到整个类的拦截和某个 Action 的拦截,优雅度也不错,够用了。
JFinal 的周边工具类,明显不足,我个人觉得,JFinal 仅仅提供了基本的工具类,比如 String Session 的快捷类。我开发过程中,发现 Flash Messages 的东西很有必要,但是我在 JFinal 里找不到,我问过作者,回应是:可能 1.9 版本后 加上去,可是1.9版本出来了,我还是没有找到,估计是要等等了。
Form 和实体的映射,JFinal 是有的,这个功能点很赞,但是还需要进一步完善吧,比如 User u = getModel(User.class, "user");这个就能把 页面上的元素值映射到实体中,但必须指定 前缀 “user”,这个做法无可厚非,但我想是不是可以更灵活些,或者不用指定前缀,也能取到值,要留个默认模式。
上面提到的 ORM 很棒,但有些东西我还要说说的,JFinal 针对 MySQL 的支持很不错,如果你切换到 SQL Server,Oracle,PostgreSQL,你会发现操作上不如 MySQL 方便,有些 ORM API,需要作者保持一致性就更好了,这个可能需要时间,但希望作者能对 PostgreSQL 的方言做一些独立开发,我喜欢开源界的 MySQL,也喜欢 PostgreSQL。
最后提一下,JFinal 的开发者估计只有一个詹波,如果更多的使用者能参与开发,有米的机构能建立一个 JFinal 基金会,更好规划 JFinal 的特性和开发工作,那结果将会就是 Java 开发者的福音了。
没有吐槽,只是使用者的友好建议,我很喜欢 JFinal。谢谢作者创作了这么完美的框架,致敬!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。