使用CUBA.Platform快要有一年了,从最初的难以理解和比较抵触,到现在真的有点喜欢这个框架,中间也确实经历了不少事情。
先简单介绍一下CUBA平台,这个框架是基于Spring的一个Java开发框架,目前的版本采用典型的三层架构,ORM层使用的是EclipseLink,中间件层使用的是Spring,展示层使用的是Vaadin(web client),Swing(desktop client)和Polymer(web portal)。所以其核心还是以Spring为中心的Java EE框架。
由于之前我用的Hibernate+Spring boot+Angular的技术架构,所以刚开始接触CUBA的时候会比较抵触,主要有这几个方面:
使用了不少xml,其中Spring bean的配置、view(EclipseLink的视图)的配置、REST service的配置、页面结构的配置等等,基本都是用xml来做。对于习惯了Spring boot的开发者来说,可能是会觉得比较麻烦。但是其实xml配置也有一个好处,就是配置都集中在xml文件里,而不会分散在各个包内。
使用了Vaadin框架作为前端页面实现。CUBA本身支持三种前端,包括基于Vaadin的web client,基于Swing的desktop client,还有基于Polymer的web portal。其中Vaadin和Swing都是用Java语言写的前端,只有Polymer是google的框架,使用的是纯前端的技术。Vaadin有个问题就是做样式调整需要后端人员配合,这样的话,纯前端人员使用上会觉得非常麻烦。
CUBA提供了一个便于开发的Studio,使得开发的过程中需要在Studio和IDE环境之间频繁切换。这个对于老鸟来说,多少有点累赘。
然后站在架构师的角度,我再说说CUBA比较好的地方,最后再说我是怎么克服或者说理解CUBA的架构,才明白其实之前三点对CUBA讨厌的地方只是对这个框架不了解。
CUBA框架在架构上的优点,通过我这近一年的使用来看,有以下几个: