springboot 集成 activiti6
1.首先是maven添加依赖各种报错。
<!-- https://mvnrepository.com/artifact/org.activiti/activiti-spring-boot-starter-basic --> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring-boot-starter-basic</artifactId> <version>5.22.0</version> </dependency>
尝试数次,无效,改天再次尝试,成功。
2.后来使用5.17版本,成功
<dependency> <groupId>org.activiti</groupId> <artifactId>spring-boot-starter-basic</artifactId> <version>5.17</version> </dependency>
其中很多的架包无法直接引入,需要手动导入。详见手动导入maven架包。
5.17版本和mybitis3.25兼容,其他的版本都有问题,具体问题是sql会多出一个order by。最后还是使用5.22版本
3.环境搭建好之后,部署对应的activiti流程,activiti desingner在前面已经说过了。启动项目,对于.bpmn文件系统会帮你直接把流程自动发布出去。
4.spring boot 整合单元测试
@RunWith(SpringJUnit4ClassRunner.class) // SpringJUnit支持,由此引入Spring-Test框架支持! @SpringApplicationConfiguration(classes = Application.class) // 指定我们SpringBoot工程的Application启动类 @WebAppConfiguration // 由于是Web项目,Junit需要模拟ServletContext,因此我们需要给我们的测试类加上@WebAppConfiguration。
5.后来项目发现,如果同一个实例,springboot无法在其他表空间创建25张表,使用加载activiti.cfg.xml的方式进行创建表。
<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"> <!-- Activiti处理引擎的配置,交由Spring管理 --> <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration"> <!-- 配置数据源,和系统使用同一个数据源 --> <property name="dataSource" ref="dataSource" /> <property name="databaseSchemaUpdate" value="true" /> <property name="jobExecutorActivate" value="false" /> <!-- 统一的事务管理 --> <property name="transactionManager" ref="transactionManager" /> <property name="activityFontName" value="宋体" /> <property name="labelFontName" value="宋体" /> <property name="databaseSchema" value="ACT"/> </bean> <bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean"> <property name="processEngineConfiguration" ref="processEngineConfiguration" /> </bean> <!-- <bean id="testService2" class="com.imm.amo.controller.ActivitiTest"></bean> --> </beans> package com.imm.config; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.ImportResource; @Configuration @ImportResource(locations={"classpath:activiti.cfg.xml"}) public class config { }
启动项目,创建activiti表。
但是因为使用了xml方式加载activiti,所以无法自动发布流程定义。固加载成功之后,去除@ImportResource即可。
springboot 整合activiti6 案例:www.b123.com
6.删除activiti表时,注意要删除SEQUENCE ACT_EVT_LOG_SEQ。