整个activiti6的搭建都是在spring boot2之上的,首先贴一下pom:
org.activiti
activiti-engine
6.0.0
junit
junit
4.11
test
ch.qos.logback
logback-classic
1.1.11
com.google.guava
guava
23.0
com.h2database
h2
1.3.176
org.slf4j
slf4j-api
1.7.6
org.springframework.boot
spring-boot-starter
mysql
mysql-connector-java
5.1.27
com.alibaba
druid-spring-boot-starter
1.1.9
引擎对象创建的方法,activiti给出了6中,我这记录了其中三种:
首先是读取activiti默认配置文件(activiti.cfg.xml)的默认创建方式,即基于H2内存数据库:
这里建的测试方法:
//1基于默认的引擎配置方式,基于默认xml配置与内存H2数据库
@Testpublic voidtestConfig1(){
ProcessEngineConfiguration configuration=ProcessEngineConfiguration
.createProcessEngineConfigurationFromResourceDefault();
LOGGER.info("configuration = {}",configuration);
}
接着通过MySQL创建引擎对象,同样用到的是 .createProcessEngineConfigurationFromResourceDefault()方法
不过配置文件需要修改为:
同样的:
@Testpublic voidtestConfig1(){//创建引擎
ProcessEngineConfiguration configuration =ProcessEngineConfiguration
.createProcessEngineConfigurationFromResourceDefault();
LOGGER.info("configuration = {}",configuration);//获取引擎
ProcessEngine processEngine =configuration.buildProcessEngine();
LOGGER.info("获取流程引擎 {}",processEngine.getName());//关闭引擎
processEngine.close();
}
以上同属一种方法实现的创建。
接着是直接创建流程对象的方式:
//2直接创建引擎的方式,基于独立的流程引擎对象
@Testpublic voidtestConfig2(){
ProcessEngineConfiguration configuration=ProcessEngineConfiguration
.createStandaloneInMemProcessEngineConfiguration();
LOGGER.info("configuration = {}",configuration);//configuration = org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration@1a84f40f
}//如果是根据资源文件去加载的,那么他会通过spring去解析;如果我们默认创建一个独立的,那么他只是new出一个对象//所以test1、2 一个是依赖spring的一个是不依赖spring的,展示用内存数据库,但是生产时都用spring配置来构造引擎的
这种方式不需要去编写资源文件。
第三种方法是通过读取指定资源文件的方式来创建流程对象(这里给指定资源文件取名为activiti_druid.cfg.xml):
测试类:
@Testpublic voidtestConfig2(){//创建引擎,这里使用的不是默认的配置文件了所以需要改变获取方法
ProcessEngineConfiguration configuration =ProcessEngineConfiguration
.createProcessEngineConfigurationFromResource("activiti_druid.cfg.xml");
LOGGER.info("configuration = {}",configuration);//获取引擎
ProcessEngine processEngine =configuration.buildProcessEngine();
LOGGER.info("获取流程引擎 {}",processEngine.getName());//关闭引擎
processEngine.close();
}