这是简单版本,详细介绍可以看我下一篇文章!
ACT_RE_*: 'RE’表示repository。 这个前缀的表包含了流程定义和流程静态资源(图片,规则,等等)。
ACT_RU_*: 'RU’表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据,在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。
ACT_ID_*: 'ID’表示identity。 这些表包含身份信息,比如用户,组等等。
ACT_HI_*: 'HI’表示history。 这些表包含历史数据,比如历史流程实例,变量,任务等等。
ACT_GE_*: 通用数据,用于不同场景下,如存放资源文件。
导入依赖:主要还是activiti-spring和activiti-engine《这个记得排除一下》
<?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>activity-test</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<log4j.version>1</log4j.version>
</properties>
<dependencies><!-- active依赖-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring</artifactId>
<version>7.1.0.M6</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-engine</artifactId>
<version>7.1.0.M6</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>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-nop</artifactId>
<version>1.7.2</version>
</dependency>
<!-- mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
</dependencies>
</project>
然后这里有两个方法:
一个是先创建activiti.cfg.xml文件,然后生成,这个activiti.cfg.xml可以自己用actiBPM绘制然后转换。或者直接自己写,我这里采用的是自己写:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<!-- 配置数据库相关-->
<!-- 数据库驱动-->
<property name="jdbcDriver" value="com.mysql.cj.jdbc.Driver"></property>
<!-- 数据库链接-->
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test?useSSL=false& useUnicode=true& characterEncoding=utf8& serverTimezone=Asia/Shanghai& nullCatalogMeansCurrent=true"></property>
<property name="jdbcUsername" value="root"></property>
<property name="jdbcPassword" value="123456"></property>
<!-- 数据库表在生成时的依赖-->
<property name="databaseSchemaUpdate" value="true"></property>
</bean>
</beans>
!!!!这里特别注意nullCatalogMeansCurrent=true 一定要加上,否则创建不成功
然后使用工作流生成数据库表即可:
@Test
public void testActiviti(){
// 使用xml生成activity工作流
Logger logger = LoggerFactory.getLogger(ActivitTest.class);
// 获取activity提供的工具类
// 获取这个默认engine时就会自动创建数据库表
ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
System.out.println(engine);
}
第二种方法就是直接配置:
@Test
public void testAutoActiviti(){
// 不使用xml生成activity工作流
// 创建工具类
ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();
// driver
configuration.setJdbcDriver("com.mysql.cj.jdbc.Driver");
// 放入url链接
configuration.setJdbcUrl("jdbc:mysql://localhost:3306/test1?serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true");
configuration.setJdbcUsername("root");
configuration.setJdbcPassword("123456");
// 是否更新数据库,一定要填上是,不然白写
configuration.setDatabaseSchemaUpdate("true");
configuration.setDatabaseSchema(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
// 完成数据库创建
configuration.buildProcessEngine();
}