我开始深入研究liferay 6.x ServiceBuilder框架,并且非常喜欢它的代码生成方法。一个简单的service.xml文件可以生成随时可用的强大服务,甚至无需编写任何代码。
我也试过调查可以从UML模型生成类似服务的AndroMDA,这听起来更有趣,因为它将直接链接我的业务模型,而不需要为service.xml学习新的xml配置(如果是liferay ServiceBuilder)
现在我正在决定应该使用哪个工具。根据您对这些工具的使用经验,请告诉我使用此库的优点/缺点
我有兴趣了解这些方面以及您自己的想法
你知道还有其他任何代码生成库比liferay 6.x开发更好吗?我还检查了这些SO线程
答案 0 :(得分:4)
我遇到过Servicebuilder遇到的一些问题(我使用的是liferay 5.2.3):
但绝对有它自己的好处,比如Egar说,它是专为Liferay制作的。因此它可以快速生成liferay所需的一切。我听说在liferay的最新版本中,很少有上述问题得到解决。
总的来说,这取决于您的要求。如果您需要对ORM层进行更多控制,并且您需要进行大量单元测试的复杂业务逻辑,请选择普通的Spring服务,这些服务可以作为Web服务或REST服务公开给您的portlet。
否则服务构建器也适用于简单的portlet。其他方法可以使用两者。所有复杂服务都作为一个单独的项目,而简单的服务与服务构建者一起。
答案 1 :(得分:2)
有一个重要的事实是你应该知道。 ServiceBuilder已被用于帮助构建门户本身,并且它与其紧密集成。你不能在Liferay之外使用它...我的意思是它可能会被采用和修改以供一般使用,但我怀疑它是否有意义。
最重要的是因为您正在开发的Portal和每个插件在servlet容器中都有自己的Web应用程序上下文 - 每个都有自己的类加载器。插件使用Portal类加载器和门户服务等。
简单地说,ServiceBuilder生成的代码和spring上下文只有在存在webapp / ROOT / Liferay Portal和门户类加载器等的情况下才能存在。
AndroMDA是一个用于一般用途的MDA框架。我不太了解,所以我宁愿不做比较。 ServiceBuilder的强大之处在于它不是一般用法的框架 - 它对于liferay插件开发来说功能越强大。