三、ProcessEngine与EngineServer简介

13055171-d24115443326712c.png

一、ProcessEngine 流程引擎

  1. EngineServers:该接口定义了获取各种服务类实例对象的方法。
  2. ProcessEngine:继承EngineServers接口,并增加了对流程引擎名称的获取以及关闭。
  3. ProcessEngineImplement:对ProcessEngine接口中定义的方法实现。
  4. ProcessEngines:该类负责管理所有的引擎ProcessEngine的集合,并负责流程引擎实例对象的注册、获取、注销等操作。
  5. PricwssEngineConfiguration:该抽象类实现接口EngineServer,提供了一系列创建流程引擎配置类ProcessEngineConfigureaction实例对象的方法
  6. ProcessEngineConfigurationImpl:该抽象类继承PricwssEngineConfiguration,负责创建一系列服务类实例对象、流程引擎实例对象以及ProcessEngineImpl类实例对象。该类可以通过流程配置文件交给Spring容器管理或者使用编程方式动态构造。
  7. SpringProcessEngineConfiguration:主要用于整合Spring框架时使用,提供了几个重要的功能:
    • 创建流程引擎实例对象;
    • 流程引擎启动之后自动部署配置的流程文档(需要配置)
    • 设置流程引擎连接的数据源、事务管理器等
  8. StandaloneProcessEngineConfigueration:标准的流程引擎配置类。
  9. MultiSchemaMultiTenantProcessEngineConfiguration:“多数据库多租户”流程引擎配置类,Activiti通过此类为开发人员提供了自动路由机制,这样当流程引擎需要连接对各数据库进行操作时,客户端无需关心引擎到底连接的是哪个数据库,该类通过路由规则自动选择需要自动操作的数据库,数据库的操作对客户端来说是透明的,客户端无需关心其内部路由的实现机制。
  10. JtaProcessEnginConfiguration:故名自已,通过类名也知道该类支持JTA(Java Transaction API)
  11. StandaloneInMenProcessEngineConfiguration:该类通常可以在开发环境中自测使用,默认采用H2数据可存储数据

二、EngineServer 提供了一下服务

  1. RepositoryServer:操作流程定义的方法。
  2. Runtime:操作流程实例的方法。
  3. FormServer:操作流程表单的方法。
  4. TaskServer:操作任务的方法,例如(任务的完成、挂起、激活、添加处理人、认领、删除等操作)
  5. HistoryServer:查询历史流程实例、历史变量、历史任务的方法
  6. IdentityServer:操作用户或者用户组的方法。
  7. ManagementServer:查询数据库表中的数据、表的元数据以及命令等方法。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的 Activiti 的 demo: 1. 首先创建一个 Maven 项目,然后在 pom.xml 文件中添加以下依赖: ```xml <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-engine</artifactId> <version>7.1.0.M1</version> </dependency> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring-boot-starter-basic</artifactId> <version>7.1.0.M1</version> </dependency> ``` 2. 创建一个 Process 定义文件(例如 demo.bpmn),可以使用 Activiti Modeler 在线绘制或者使用 Eclipse Activiti 插件绘制。 3. 在 Spring Boot 应用程序中,创建一个名为 DemoApplication 的类,并添加 @SpringBootApplication 注解。然后,添加以下代码: ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } ``` 4. 在 src/main/resources 目录下,创建一个名为 application.yml 的文件,添加以下配置: ```yml spring: datasource: url: jdbc:mysql://localhost:3306/activiti?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT username: root password: root driver-class-name: com.mysql.jdbc.Driver jpa: database: mysql hibernate: ddl-auto: update show-sql: true activiti: database-schema-update: true ``` 5. 创建一个名为 ActivitiConfig 的类,添加 @Configuration 注解和 @EnableActiviti 注解。添加以下代码: ```java import org.activiti.spring.SpringProcessEngineConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.transaction.PlatformTransactionManager; import javax.sql.DataSource; @Configuration @EnableActiviti public class ActivitiConfig { @Bean public SpringProcessEngineConfiguration processEngineConfiguration(DataSource dataSource, PlatformTransactionManager platformTransactionManager) { SpringProcessEngineConfiguration configuration = new SpringProcessEngineConfiguration(); configuration.setDataSource(dataSource); configuration.setTransactionManager(platformTransactionManager); configuration.setDatabaseSchemaUpdate("true"); return configuration; } } ``` 6. 创建一个名为 DemoController 的类,添加 @RestController 注解和 @RequestMapping 注解。添加以下代码: ```java import org.activiti.engine.ProcessEngine; import org.activiti.engine.ProcessEngineConfiguration; import org.activiti.engine.ProcessEngines; import org.activiti.engine.RepositoryService; import org.activiti.engine.repository.Deployment; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/demo") public class DemoController { @Autowired private ProcessEngine processEngine; @GetMapping("/deploy") public String deploy() { RepositoryService repositoryService = processEngine.getRepositoryService(); Deployment deployment = repositoryService.createDeployment() .addClasspathResource("demo.bpmn") .deploy(); return "部署成功,流程定义 ID 为:" + deployment.getId(); } } ``` 7. 在浏览器中输入 http://localhost:8080/demo/deploy,执行部署操作,然后在 Activiti Modeler 中启动流程实例。 这是一个简单的 Activiti demo,仅用于演示如何使用 Activiti。在实际应用中,需要更多的配置和代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值