基于MySQL的Activiti6引擎创建

时间:2021-12-12 12:59:08

整个activiti6的搭建都是在spring boot2之上的,首先贴一下pom:

  <dependencies>
<!-- 这是activiti需要的最基本的核心引擎 -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-engine</artifactId>
<version>6.0.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.11</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>23.0</version>
</dependency> <dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.3.176</version>
</dependency> <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.6</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency> <dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.27</version>
</dependency>
<!-- alibaba的druid数据库连接池 -->
<!-- https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.9</version>
</dependency> </dependencies>

引擎对象创建的方法,activiti给出了6中,我这记录了其中三种:

基于MySQL的Activiti6引擎创建

首先是读取activiti默认配置文件(activiti.cfg.xml)的默认创建方式,即基于H2内存数据库:

 <!-- 1 基于H2内存数据库 的流程引擎配置,也是在什么都没配置时的默认配置-->
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration">
<property name="jdbcUrl" value="jdbc:h2:mem:activiti;DB_CLOSE_DELAY=1000;MVCC=TRUE" />
<property name="jdbcDriver" value="org.h2.Driver" />
<property name="jdbcUsername" value="sa" />
<property name="jdbcPassword" value="" />
</bean>

这里建的测试方法:

//1基于默认的引擎配置方式,基于默认xml配置与内存H2数据库
@Test
public void testConfig1(){
ProcessEngineConfiguration configuration = ProcessEngineConfiguration
.createProcessEngineConfigurationFromResourceDefault();
LOGGER.info("configuration = {}",configuration);
}

接着通过MySQL创建引擎对象,同样用到的是 .createProcessEngineConfigurationFromResourceDefault()方法

不过配置文件需要修改为:

<!-- StandaloneInMemProcessEngineConfiguration里面databaseSchemaUpdate默认为
“create-drop”,即用时自动创建表,关闭时自动删除表(ps:对应库为空库,中必须无表)
-->
<bean id="processEngineConfiguration"
class="org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration">
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti6unit?useUnicode=true&amp;characterEncoding=utf-8&amp;useSSL=false" />
<property name="jdbcDriver" value="com.mysql.jdbc.Driver" />
<property name="jdbcUsername" value="root" />
<property name="jdbcPassword" value="root" />
<!--默认设置-->
<!--<property name="databaseSchemaUpdate" value="create-drop" />-->

同样的:

    @Test
public void testConfig1(){
//创建引擎
ProcessEngineConfiguration configuration = ProcessEngineConfiguration
.createProcessEngineConfigurationFromResourceDefault();
LOGGER.info("configuration = {}",configuration);
//获取引擎
ProcessEngine processEngine = configuration.buildProcessEngine();
LOGGER.info("获取流程引擎 {}",processEngine.getName());
//关闭引擎
processEngine.close();
}

以上同属一种方法实现的创建。

接着是直接创建流程对象的方式:

 //2直接创建引擎的方式,基于独立的流程引擎对象
@Test
public void testConfig2(){
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):

<bean id="processEngineConfiguration"
class="org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration">
<!-- 这里设为true就不会在结束时删除表 -->
<property name="databaseSchemaUpdate" value="true" />
<!-- 使用连接池 -->
<property name="dataSource" ref="dataSource" />
</bean> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="url" value="jdbc:mysql://localhost:3306/activiti6unit?useUnicode=true&amp;characterEncoding=utf-8&amp;useSSL=false" />
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="username" value="root" />
<property name="password" value="root" />
<property name="initialSize" value="1" />
<property name="maxActive" value="10" />
<property name="filters" value="stat,slf4j"/>
</bean>

测试类:

 @Test
public void testConfig2(){
//创建引擎,这里使用的不是默认的配置文件了所以需要改变获取方法
ProcessEngineConfiguration configuration = ProcessEngineConfiguration
.createProcessEngineConfigurationFromResource("activiti_druid.cfg.xml");
LOGGER.info("configuration = {}",configuration);
//获取引擎
ProcessEngine processEngine = configuration.buildProcessEngine();
LOGGER.info("获取流程引擎 {}",processEngine.getName());
//关闭引擎
processEngine.close();
}

基于MySQL的Activiti6引擎创建的更多相关文章

  1. MySQL数据库 存储引擎&comma;创建表完整的语法&comma;字段类型&comma;约束条件

    1.存储引擎 - 存储引擎是用于根据不同的机制处理不同的数据. - 查看mysql中所有引擎: - show engines; - myisam: 5.5以前老的版本使用的存储引擎 - blackho ...

  2. 随着应用对事务完整性和并发性要求的不断提高,MySQL才开始开发基于事务的存储引擎

    MYSQL 解锁与锁表 - 专注it - 博客园 https://www.cnblogs.com/wanghuaijun/p/5949934.html 2016-10-11 16:50 MYSQL 解 ...

  3. 【转】MySQL 数据库存储引擎

    原文地址:http://blog.jobbole.com/94385/ 简单介绍 存储引擎就是指表的类型.数据库的存储引擎决定了表在计算机中的存储方式.存储引擎的概念是MySQl的特点,而且是一个插入 ...

  4. MySQL 数据库存储引擎

    简单介绍 存储引擎就是指表的类型.数据库的存储引擎决定了表在计算机中的存储方式.存储引擎的概念是MySQl的特点,而且是一个插入式的存储引擎概念.这就决定了MySQl数据库中的表可以使用不同的存储方式 ...

  5. &lpar;转&rpar;Mysql数据库存储引擎

    什么是MySql数据库 通常意义上,数据库也就是数据的集合,具体到计算机上数据库可以是存储器上一些文件的集合或者一些内存数据的集合.     我们通常说的MySql数据库,sql server数据库等 ...

  6. MySQL的BlackHole引擎在主从架构中的作用

    MySQL在5.x系列提供了Blackhole引擎–“黑洞”. 其作用正如其名字一样:任何写入到此引擎的数据均会被丢弃掉, 不做实际存储:Select语句的内容永远是空. 和Linux中的 /dev/ ...

  7. MySQL数据库存储引擎

    这里主要介绍最常用的两种存储引擎. 1.InnoDB InnoDB是一个事务型的存储引擎,有行级锁定和外键约束.Innodb引擎提供了对数据库ACID事务的支持,并且实现了SQL标准的四种隔离级别,关 ...

  8. MySQL常用存储引擎及如何选择

    一.MySQL的存储引擎 完整的引擎说明还是看官方文档:http://dev.mysql.com/doc/refman/5.6/en/storage-engines.html 这里介绍一些主要的引擎 ...

  9. mysql 的存储引擎介绍

    在数据库中存的就是一张张有着千丝万缕关系的表,所以表设计的好坏,将直接影响着整个数据库.而在设计表的时候,我们都会关注一个问题,使用什么存储引擎.等一下,存储引擎?什么是存储引擎? 什么是存储引擎? ...

随机推荐

  1. windows核心编程---第八章 使用内核对象进行线程同步

    使用内核对象进行线程同步. 前面我们介绍了用户模式下线程同步的几种方式.在用户模式下进行线程同步的最大好处就是速度非常快.因此当需要使用线程同步时用户模式下的线程同步是首选. 但是用户模式下的线程同步 ...

  2. 今天心情好,给各位免费呈上200兆SVN代码服务器一枚,不谢!

    开篇先给大家讲个我自己的故事,几个月前在网上接了个小软件开发的私活,平日上班时间也比较忙,就中午一会儿休息时间能抽出来倒腾着去做点.每天下班复制一份到U盘带回去继续摸索,没多久U盘里躺着的文件列表那叫 ...

  3. etcdctl --help

    NAME:   etcdctl - A simple command line client for etcd. USAGE:   etcdctl [global options] command [ ...

  4. Questions&quest;

    http://www.datastax.com/wp-content/themes/datastax-2014-08/files/NoSQL_Benchmarks_EndPoint.pdf http: ...

  5. linux服务器,svn认证失败&comma;配置问题,防火墙等等

    之前自己还真没设置过SVN,今天亲自动手,错误百出,真是够头疼的.在网上随便找了一篇文章,就按照文章介绍开始安装.怎么安装和设置我就不说了,这里主要记录遇到的问题. 1.不知道该怎么设置 svn:// ...

  6. &lpar;NO&period;00004&rpar;iOS实现打砖块游戏&lpar;十三&rpar;&colon;伸缩自如&comma;我是如意金箍棒&lpar;下&rpar;&excl;

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 准备缩短反弹棒素材 和上一篇类似,我们如法炮制一张缩短后反弹棒的 ...

  7. UML 类图&period; 对象图&period; 接口图&period; 用例图 &period;包&comma;参与者&period; 依赖关系&period; 泛化&sol;继承关系&period; 关联关系 &period;聚合&sol;聚集关系&period; 实现关系 组合关系。

    结构元素 结构元素包括,类,对象,接口,用例,参与者. 类图 类图图示      类图是UML中最基本的元素了吧?根据OO的思想"天下一切皆对象",而类是对象的抽象.      左 ...

  8. arcgis api 3&period;x for js 入门开发系列八聚合效果(附源码下载)

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...

  9. 【织梦dedecms安全设置】dedecms如何防止被黑&quest;dedecms被黑了怎么办&quest;

    [织梦dedecms安全设置]dedecms如何防止被黑?dedecms被黑了怎么办?010-63495805很多所谓的“黑客”都是用工具来扫描入侵,厉害点的人是不屑来黑我们的小网站的,所以我们一般做 ...

  10. 关于Big Endian 和 Little Endian

    Big Endian 和 Little Endian 一.字节序 来自:http://ayazh.gjjblog.com/archives/1058846/ 谈到字节序的问题,必然牵涉到两大CPU派系 ...