以下是Spring Boot集成Activiti的示例代码攻略:
- 添加依赖项
首先,我们需要在pom.xml
文件中添加Activiti和Spring Boot Starter依赖项:
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-basic</artifactId>
<version>7.1.0.M6</version>
</dependency>
- 配置数据源
接下来,我们需要在application.properties
文件中配置数据源:
spring.datasource.url=jdbc:mysql://localhost:3306/activiti?useSSL=false
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
- 创建流程定义
我们可以使用Activiti Modeler创建流程定义。在Modeler中,我们可以定义流程图并将其导出为BPMN 2.0文件。然后,我们可以将BPMN文件放置在src/main/resources/processes
目录中。
- 创建流程服务
我们需要创建一个流程服务来管理流程定义和流程实例。我们可以使用Activiti提供的RepositoryService
和RuntimeService
接口来实现这一点。以下是一个简单的流程服务示例:
@Service
public class ProcessService {
@Autowired
private RepositoryService repositoryService;
@Autowired
private RuntimeService runtimeService;
public void startProcess(String processDefinitionKey) {
runtimeService.startProcessInstanceByKey(processDefinitionKey);
}
public List<ProcessDefinition> getProcessDefinitions() {
return repositoryService.createProcessDefinitionQuery().list();
}
}
在上面的示例中,我们使用@Service
注解将类标记为Spring服务。我们注入了RepositoryService
和RuntimeService
接口,并使用startProcessInstanceByKey()
方法启动流程实例。我们还使用createProcessDefinitionQuery()
方法获取所有流程定义。
- 创建流程控制器
我们需要创建一个流程控制器来处理HTTP请求并调用流程服务。以下是一个简单的流程控制器示例:
@RestController
public class ProcessController {
@Autowired
private ProcessService processService;
@GetMapping("/process-definitions")
public List<ProcessDefinition> getProcessDefinitions() {
return processService.getProcessDefinitions();
}
@PostMapping("/process-instances/{processDefinitionKey}")
public void startProcess(@PathVariable String processDefinitionKey) {
processService.startProcess(processDefinitionKey);
}
}
在上面的示例中,我们使用@RestController
注解将类标记为Spring控制器。我们注入了ProcessService
接口,并使用getProcessDefinitions()
方法获取所有流程定义。我们还使用startProcess()
方法启动流程实例。
- 示例1:使用Activiti Modeler创建流程定义
在这个示例中,我们将使用Activiti Modeler创建一个简单的流程定义。我们将定义一个简单的请假流程,其中包括一个开始事件、一个用户任务和一个结束事件。
- 打开Activiti Modeler并创建一个新的流程定义。
- 在流程图中添加开始事件、用户任务和结束事件。
- 将用户任务命名为“请假申请”。
- 将流程定义导出为BPMN 2.0文件,并将其放置在
src/main/resources/processes
目录中。 - 创建流程服务和流程控制器,如上所述。
- 启动应用程序并访问
http://localhost:8080/process-definitions
,将看到新创建的流程定义。 -
发送POST请求到
http://localhost:8080/process-instances/请假流程
,将启动新的流程实例。 -
示例2:使用Java代码创建流程定义
在这个示例中,我们将使用Java代码创建一个简单的流程定义。我们将定义一个简单的请假流程,其中包括一个开始事件、一个用户任务和一个结束事件。
- 创建一个新的Spring Boot项目。
- 在
pom.xml
文件中添加Activiti和Spring Boot Starter依赖项,如上所述。 - 在
application.properties
文件中配置数据源,如上所述。 - 创建一个新的Java类,并使用
@Configuration
注解将其标记为Spring配置类。 - 在配置类中创建一个
ProcessEngineConfiguration
实例,并使用setDataSource()
方法设置数据源。 - 在配置类中创建一个
ProcessEngine
实例,并使用buildProcessEngine()
方法构建它。 - 在配置类中创建一个
RepositoryService
实例,并使用createDeployment()
方法创建一个新的流程部署。 - 在流程部署中添加BPMN文件,并使用
deploy()
方法部署流程定义。 - 创建流程服务和流程控制器,如上所述。
- 启动应用程序并访问
http://localhost:8080/process-definitions
,将看到新创建的流程定义。 - 发送POST请求到
http://localhost:8080/process-instances/请假流程
,将启动新的流程实例。
希望这些信息能够帮助您集成Spring Boot和Activiti。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot 集成 activiti的示例代码 - Python技术站