Liferay7 BPM门户开发之19: 理解Service Builder体系

时间:2023-01-25 09:12:03

Service Builder是Liferay为业务开发而设计的模型驱动(model-driven)平台工具,提供一系列的实体类、数据持久化、服务相关的代码自动生成服务。支持Hibernate and Spring集成,缓存处理,动态查询等特性。令人惊讶的是,Liferay所有的持久化代码、Servie接口代码都是由Service Builder自动生成的,可见其自动化程度之高。

注意:Liferay的数据持久化开发不是必需用Service Builder,你可以直接用JDBC、JPA等任何技术。使用Service Builder只需要少量的学习,即可节省大量的开发时间。数据访问层和服务层很容易就自动生成,只需要创建一个配置文件service.xml,然后运行,CRUD 和相关方法就自动创建。

服务层的生成分两种:local service、remote service。前者供本地程序使用(即同一个jvm的java应用),远程服务则是通过SOAP or JSON访问
数据持久化层是包装了Spring 和 Hibernate的自动配置和注入(AOP、DI、ORM)

Service Builder带来的另一个好处是支持自定义的finder方法。

在 Liferay7中,可以通过https://github.com/liferay/liferay-blade-samples 来快速建立Service Builder工程

定义Service Builder映射的7个步骤

STEP 1: 创建service.xml
DTD的定义文件:http://www.liferay.com/dtd/liferay-service-builder_7_0_0.dtd

STEP 2: 定义全局信息

STEP 3: 定义ENTITIES

STEP 4: 定义ENTITY的列

STEP 5: 定义ENTITIES关系

STEP 6: 定义排序

STEP 7: 定义FINDER方法

运行Service Builder的2个方法

方法1: 通过IDE,Package Explorer → right click your parent project → Liferay → Gradle → build-service
方法2: 通过linux命令行:gradlew buildService 更多信息见:https://dev.liferay.com/develop/tutorials/-/knowledge_base/7-0/creating-a-liferay-workspace-with-blade-cli

定制SQL

动态查询

例子