简介
generator-jhipster-activiti 是基于 JHipster 和 Activiti 的一个 npm 包,它可以帮助前端开发人员创建一个基础的 Activiti 项目,包括 Activiti 的相关配置、Activiti-rest 的配置以及数据模型的生成。适用于想要在 JHipster 项目中集成 Activiti 的开发者。
使用前准备
在使用 generator-jhipster-activiti 之前,你需要安装以下工具:
安装
首先,全局安装 generator-jhipster-activiti:
npm install -g generator-jhipster-activiti
接着,在 JHipster 项目根目录下执行以下命令:
yo jhipster-activiti
根据提示进行配置,回答问题或保留默认值。
完成配置后,执行以下命令启动项目:
./mvnw
然后,在浏览器中打开 localhost:8080 即可访问项目。
项目结构
使用 generator-jhipster-activiti 生成的项目结构与 JHipster 原有的结构相似,但在 Activiti 方面做了一些特殊处理。
src/main/resources/processes
: Activiti XML 流程文件的存储目录。src/main/resources/processes/*.bpmn20.xml
: Activiti BPMN 2.0 文件。src/main/resources/activiti
: Activiti 的相关配置文件存储在该目录下。src/main/resources/config/application-activiti.yml
: Activiti 的配置文件(需要手动创建)。
使用示例
创建一个新的 BPMN 流程
在 src/main/resources/processes
目录下新建一个 .bpmn20.xml
文件,例如:
-- -------------------- ---- ------- ----- ------------- ------------------ ------------ --------------------------------------------------- -------------------------------------------------- ----------------------------------------------------- --------------------------------------------------------------- ----------- ------------------------------------------------------------- -------- ------------- ------------- --- ----------- ---------------- ------------- ---------------------------------- ------------- ------------- ------------------ ----------------------- ------------------------- ----------- ---------------- -------------- ------------------------------ --------------------- ---------------------------------- ---------------------------------- ------------- ------------- ------------------ ----------------------- ----------------------- --------- -------------- ----------- ---------------------------------- ----------- ---------- --------------
上述流程定义了一个简单的包含一个开始事件、一个脚本任务和一个结束事件的流程。
接着,在 src/main/resources/activiti
目录下创建一个 .properties
文件(例如 my-process.properties
),添加以下内容:
spring.activiti.bpmn-location-pattern=classpath*:processes/*.bpmn20.xml
然后,在 src/main/resources/config/application-activiti.yml
中引入该配置文件:
spring: profiles: include: - swagger - dev - my-process
重启项目,即可在 Activiti 的 Cockpit 中看到一个名为 process1
的流程。
添加 Activiti-rest 支持
首先,在 pom.xml
中添加以下依赖:
-- -------------------- ---- ------- ------------ ------------------------------- -------------------------------------------------------------------- -------------------------------------- ------------- ------------ --------------------------------- --------------------------- ---------------------- -------------
然后,在 src/main/resources/application.yml
中配置 Activiti-rest:
-- -------------------- ---- ------- --------- ----- ---- ----- ----- ---- --------------------- -------- ------------- -------------- --------- -------------- ---- ------- -------- ----- -- ---- ------------------------------------------------------------- --------- -- --------- --
重启项目,即可在 http://localhost:8080/activiti-rest
访问 Activiti-rest 的 API。
生成数据模型
在项目根目录下执行以下命令:
yo jhipster-activiti:model
根据提示回答问题,将会在 src/main/java/com/myapp/domain/
目录下生成一个名为 ActivitiTask.java
的 Java 类,用于管理 Activiti 定义的任务。该类包括以下属性:
- id: 主键
- name: 任务名称
- assignee: 处理人
- createTime: 创建时间
- dueDate: 截止时间
- priority: 优先级
- processInstanceId: 流程实例 ID
- executionId: 执行 ID
- description: 描述
它继承了 AbstractAuditingEntity
,所以还具有创建日期、创建者、最后修改日期和最后修改者等属性。
在使用时,首先需要在你自己的域对象(例如 Order
)中添加一个 Activiti 任务属性:
@ManyToOne(fetch = FetchType.EAGER) private ActivitiTask activitiTask;
并在其对应的 DTO(例如 OrderDTO
)中添加相应的属性和 get/set 方法:
-- -------------------- ---- ------- ------- ---- --------------- ------ ---- ------------------- - ------ --------------- - ------ ---- ---------------------- --------------- - ------------------- - --------------- -
然后,在服务类中进行相应的操作:
- 创建 Activiti 任务:使用 Activiti 的 API 创建任务,并将其 ID 存储到域对象中的
activitiTaskId
属性中。 - 完成 Activiti 任务:通过
ActivitiTaskRepository
查询任务,并调用 Activiti 的 API 完成任务。 - 查询 Activiti 任务:通过
ActivitiTaskRepository
查询任务。
结论
generator-jhipster-activiti 能够为你的 JHipster 项目集成了 Activiti 的基础支持,使得你可以在项目中快速创建 Activiti 流程、使用 Activiti-rest、生成数据模型等,提高项目开发效率、降低项目开发成本。如果你正在使用 JHipster,并且想要集成 Activiti,那么 generator-jhipster-activiti 将会是一个不错的选择。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600574c281e8991b448ea24a