最近因项目需求要使用Activiti流程引擎,之前写过maven工程整合Activiti的项目,这次因为要使用springboot,和maven工程还是有点区别,下文将介绍springboot整合Activiti的过程。
1.pom文件中导入依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-basic</artifactId>
<version>6.0.0</version>
</dependency>
<!--<dependency>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-starter-data-jpa</artifactId>-->
<!--</dependency>-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--mybatis start-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<!--mybatis generator-->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.1</version>
</dependency>
<!--mybatis end-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
2.配置文件
在配置文件中配置数据库连接和activiti的简单配置
server.port=8080
#数据库配置
spring.datasource.url = jdbc:mysql://localhost:3306/roc_process?characterEncoding=utf8&useSSL=false
spring.datasource.username = root
spring.datasource.password = root
spring.datasource.driverClassName = com.mysql.jdbc.Driver
#关闭activiti自动部署扫描
spring.activiti.check-process-definitions=false
#上传文件大小配置
spring.servlet.multipart.max-file-size=5MB
#请求最大限制
spring.servlet.multipart.max-request-size=20MB
##指向mapper的xml文件位置
mybatis.mapper-locations=classpath:mapper/*.xml
整合activiti后,程序默认会去resource/processes下读取activiti流程并自动部署,如果resource/processes文件夹为空,或者没有这个文件夹,项目启动则会报错。在配置文件中添加配置:spring.activiti.check-process-definitions=false 则可以解决这个问题。
3.acitiviti配置文件
在代码中如果想通过: ProcessEngine processEngine= ProcessEngines.getDefaultProcessEngine(); 获取默认的processEngine,则可以在resources下添加配置文件:activiti.cfg.xml。也可以通过java类的方式进行配置,这里先不做讲解。
<!-- 数据源 -->
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="jdbcDriver" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl"
value="jdbc:mysql://localhost:3306/roc_process02?useUnicode=true&characterEncoding=utf8" />
<property name="jdbcUsername" value="root" />
<property name="jdbcPassword" value="root" />
<property name="databaseSchemaUpdate" value="true" />
</bean>
4.启动类注解
@SpringBootApplication(exclude = SecurityAutoConfiguration.class) //不添加会报错
@ImportResource(locations = {"classpath:activiti.cfg.xml"}) //引入xml配置文件
public class ProcessApplication {
public static void main(String[] args) {
SpringApplication.run(ProcessApplication.class, args);
}
}
当需要引入多个配置文件时,用逗号隔开。
至此springboot整合activiti就完成了。