activity7常见面试题有哪些?
以下是一些常见的 Activiti 7 面试题及解答,主要涵盖工作流的基本概念、API 和关键功能:
1. 什么是工作流?Activiti 是如何实现工作流管理的?
- 工作流是一种自动化的业务流程管理,按照预定的规则在多个参与者之间传递任务和信息。Activiti 7 作为一个轻量级的 Java 工作流引擎,支持 BPMN 流程建模规范,并通过 API 提供了流程定义、任务管理和执行控制的功能【12】【13】。
2. Activiti 7 的核心服务有哪些?
- RepositoryService:管理流程定义和部署。
- RuntimeService:管理运行时的流程实例和执行。
- TaskService:处理用户任务。
- HistoryService:管理流程的历史数据。
- IdentityService:管理用户、组和权限【12】【13】。
3. 如何区分流程实例和执行对象?
- 流程实例:表示流程从开始到结束的整体,一次完整的流程仅有一个流程实例。
- 执行对象:是在流程运行期间执行的具体任务,可以在一个流程中存在多个执行对象【12】。
4. 如何使用流程变量?
- 流程变量用于在不同任务之间传递数据。例如,可以将申请人的信息存储在流程变量中供审批人参考,或根据条件(如
${message == '重要'}
)动态控制流程走向【13】。
5. 如何处理任务的多条连线?
- 使用 条件表达式 配合流程变量。例如,当任务完成后,根据变量的值来判断该走哪条连线。条件表达式如
${流程变量 == '特定值'}
返回true
时,系统会选择对应的路径【13】。
6. 排他网关和并行网关有什么区别?
- 排他网关:根据条件判断执行哪一条路径,只有一条路径会被选择。
- 并行网关:同时执行多条路径,并在合适的点汇合所有路径【12】【13】。
7. 如何分配任务?
- 常见的三种方式:
- 在 BPMN 文件中直接指定办理人。
- 使用 流程变量 动态设置办理人(如
${userID}
)。 - 使用监听类,在任务开始时调用
setAssignee()
动态分配办理人【13】。
8. 如何查询个人任务和组任务?
- 使用
TaskService
查询:- 个人任务:通过
taskAssignee
查询。 - 组任务:通过
taskCandidateUser
查询【13】。
- 个人任务:通过
这些问题涵盖了 Activiti 7 在项目中应用的关键概念和实践技巧,帮助你理解其在业务流程自动化中的作用。在准备面试时,可以结合这些概念与实际项目经历深入探讨,以展示你的熟练掌握程度。