jFinal是一款很优秀的国产框架,在开源中国上也有很高的人气。因此,有许多朋友问过怎么比较sumk跟jFinal。首先声明,我没用过jfinal,只是因为要比较才浏览过jfinal的源码。所以我的比较可能不会那么全面,而且所浏览的版本可能也不是jfinal的最新版本。如果有不尽之处,欢迎大家指出。
- 定位不同,sumk第一定位是互联网,但支持单机使用,强调的是性能和开发速度的结合,为开发者提供一套能适应大多数情况的框架,降低架构难度。sumk的功能是根据互联网应用的情况而开发的,在开发的过程中,去兼容单机使用。jFinal定位于简单应用,无法适应互联网环境。但jfinal只需要引入一个jar包就可以的做法,很方便初学者上手。
- 双方都有DB操作,都支持ORM以及sql模式。双方在便利性上应该差不多。sumk相对其它的DB框架,优势是能用redis做准实时缓存(自带表级缓存,可以通过扩展实现接口级缓存。它的实现原理跟hibernate的二级缓存或spring的接口缓存有本质差异),也能用于同步数据变更mongoDB、solr等,但这个需要比较高的技巧。跟jFinal相比还有一个优势是sumk的ORM有比较强的误操作验证。
- web方面sumk跟jFinal差异很大。jFinal有类似spring mvc的页面渲染功能,sumk没有。sumk的http接口更适合移动端或者ajax类型,但可以结合spring mvc或struts实现页面功能。sumk的优势是自带加解密、数据签名、分布式session、第三方应用交互等功能。
- sumk有rpc功能,可以实现微服务化,jFinal没有。sumk的rpc跟dubbo相比,功能没有dubbo丰富,但使用比dubbo更便捷。
- sumk有自己的一套IOC功能,从而实现各模块的解耦,并且提供良好的扩展性、定制性。jFinal没有IOC功能
- 双方都有对redis的封装,都能维护连接的创建销毁等。但sumk能支持多个不同的redis实例,因为互联网公司,一个redis实例可能是不够的。并且提供了基于redis的分布式锁
- 还有很多其它方面,比如插件、拦截器等。我就不一一列举了。但jfinal有一点是sumk没法比的,jfinal的社区以及资料比sumk多很多