1、Idea新建一个项目MyActivit的maven项目
在 idea 里面,activiti 的插件叫 actiBPM,在插件库里面把它安装好,重启 idea 就行了。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>MyActiviti</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!--JUnit测试-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<!--- Activiti依赖导入 -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring</artifactId>
<version>5.18.0</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-engine</artifactId>
<version>5.18.0</version>
<exclusions>
<exclusion>
<artifactId>slf4j-api</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
<exclusion>
<artifactId>spring-beans</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
<exclusion>
<artifactId>jackson-core-asl</artifactId>
<groupId>org.codehaus.jackson</groupId>
</exclusion>
<exclusion>
<artifactId>commons-lang3</artifactId>
<groupId>org.apache.commons</groupId>
</exclusion>
<exclusion>
<artifactId>commons-lang3</artifactId>
<groupId>org.apache.commons</groupId>
</exclusion>
</exclusions>
</dependency> <!--MySQL 驱动包,如果是其他库的话需要换驱动包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.35</version>
</dependency>
</dependencies>
</project>
activiti Modeler是一个可视化的工作流编辑器,可以方便地创建一个工作流。可以在官网下载之后解压,然后启动一个tomcat服务器来访问该编辑器。
BPMN 2.0是一种XML格式的文件,可以使用文本编辑器直接编写。不同的元素使用不同的标签来表示。
例如:
<process>
标签表示一个具体的工作流程,
<startEvent>
标签表示一个开始节点,
<serviceTask>
标签表示一个服务任务等等。
接下来我们需要编写Java代码来调用工作流。通常,我们需要定义一个启动工作流的Service,在其中使用activiti来启动工作流。具体的代码可以参考以下示例:
@Service
public class WorkflowService {
@Autowired
private RuntimeService runtimeService;
public void startWorkflow() {
// 定义需要传入的参数
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("applicant", "John Doe");
variables.put("email", "john.doe@example.com");
// 启动工作流,并传入参数
ProcessInstance processInstance =
runtimeService.startProcessInstanceByKey("processKey", variables);
}
}
在上述示例代码中,我们需要注入RuntimeService
对象来启动工作流。startProcessInstanceByKey
方法中使用了一个参数processKey
,它需要与工作流文件中定义的流程ID保持一致。
编写完Java代码后,可以编写测试用例来测试工作流是否能够成功启动。可以参考以下示例代码:
@RunWith(SpringRunner.class)
@SpringBootTest
public class WorkflowServiceTest {
@Autowired
private WorkflowService workflowService;
@Test
public void testStartWorkflow() {
workflowService.startWorkflow();
}
}
在上述示例代码中,我们需要注入WorkflowService
对象来启动工作流。在testStartWorkflow
方法中调用了startWorkflow
方法来启动工作流。
可以关注我,查看【工作流Activiti】的其他文章介绍。