【Activiti第二天】的学习涵盖了多个核心概念,这些概念对于理解并使用Activiti这一流行的工作流引擎至关重要。以下是对这些知识点的详细阐述:
1. **历史数据查询**:Activiti允许查询历史流程实例、历史活动和历史任务数据。这有助于跟踪流程的执行历史,进行审计或分析流程性能。例如,可以通过API查询历史流程实例列表,了解流程运行轨迹;查询历史活动数据以查看各个活动的执行情况;以及查询历史任务数据,了解任务完成情况和责任人。
2. **流程变量**:流程变量是存储在流程实例中的数据,可以是各种类型,包括基本类型如String、Integer,以及List、Map等复杂类型,甚至自定义的实体类(需实现序列化接口)。流程变量可以在启动流程实例时设置,也可以在办理任务过程中动态更新,通过RuntimeService和TaskService都有相应的方法进行操作。
3. **任务的类型**:
- **个人任务**:指由特定个人负责完成的任务,其负责人在任务表中通过assignee字段标识。
- **公共任务(组任务)**:可由多人办理,设计流程时可指定多个候选人。查询公共任务列表,拾取任务,以及退回任务至公共任务列表都是管理工作流的重要环节。
- **接收任务**:不同于个人任务和公共任务,接收任务不指定特定责任人,而是通过signal方法推进流程执行。
4. **监听器(Listener)**:监听器用于扩展流程行为,响应流程实例和任务事件。分为执行监听器和任务监听器。编写监听器类后,需在流程图中注册,框架通过反射机制调用相应的监听器方法。
5. **网关(Gateway)**:
- **排他网关(Exclusive Gateway)**:根据预设条件选择执行路径,只执行其中一个分支,常用于决策点。
- **并行网关(Parallel Gateway)**:允许多个分支并行执行,提高流程效率。
6. **Spring整合Activiti**:在Spring环境中集成Activiti,需要配置数据源、事务管理器、流程引擎配置对象和流程引擎本身。通过Spring工厂获取流程引擎对象,实现流程的灵活控制。
7. **搭建Web项目环境**:创建动态Web项目,准备数据库和用户权限,引入必要的库文件(Struts2、Spring、Hibernate和Activiti),配置Struts和Spring的XML文件,以及在web.xml中配置过滤器,这些步骤是构建基于Activiti的Web应用的基础。
通过以上内容,我们可以看到Activiti第二天的学习涉及了从基础查询到高级特性的广泛知识,包括历史数据管理、变量操作、任务类型、监听器机制、流程决策以及与Spring的深度集成。这些都为后续深入学习和实际应用Activiti奠定了坚实基础。