学习SpringBoot整合Activiti遇到的几个问题
1.连接controller时跳转登录页面,这是因为Activiti依赖中存在security包
可以选择在启动类上屏蔽security.class和org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class

但是因为我依赖中没加security的依赖决定在yml配置中添加账号密码
不添加这个的话,原始账号是user 密码是启动类运行 下面提供的编码

配置中可以把自动部署关掉在这里插入图片描述

搞完这些就可以解决登录问题

找了很多文章,没有找到一个完美的集成,东拼西凑自己写了下。有的地方可能存在问题目前就是想实现在SpringBoot中成功部署流程。
首先application.yml配置

# 应用服务 WEB 访问端口server.port: 8081spring:# 数据源配置 datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/activiti7" />=true&serverTimezone=UTC&characterEncoding=UTF8&nullCatalogMeansCurrent=trueusername: "root"password: "123456"type: com.zaxxer.hikari.HikariDataSourcehikari:# 等待连接池分配连接的最大时间(毫秒),超过这个时长还没有可用的连接,则会抛出SQLException connection-timeout: 30000# 最小连接数 minimum-idle: 5# 最大连接数 maximum-pool-size: 20# 自动提交 auto-commit: true# 连接超时的最大时长(毫秒),超时则会被释放(retired) idle-timeout: 600000# 连接池的名字 pool-name: DataSourceHikariCP# 连接池的最大生命时长(毫秒),超时则会被释放(retired) max-lifetime: 18000000 security:user: name: root password: 123456 # activiti7配置 activiti:# 自动部署验证设置:true-开启(默认)、false-关闭check-process-definitions: false# 保存历史数据history-level: full# 检测历史表是否存在db-history-used: true# 关闭自动部署deployment-mode: never-fail# 对数据库中所有表进行更新操作,如果表不存在,则自动创建# create_drop:启动时创建表,在关闭时删除表(必须手动关闭引擎,才能删除表)# drop-create:启动时删除原来的旧表,然后在创建新表(不需要手动关闭引擎)database-schema-update: true# 解决频繁查询SQL问题async-executor-activate: false

然后依赖

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.yao</groupId><artifactId>activiti7demo</artifactId><version>0.0.1-SNAPSHOT</version><name>activiti7demo</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring-boot.version>2.4.2</spring-boot.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.29</version></dependency><dependency><groupId>org.activiti</groupId><artifactId>activiti-spring-boot-starter</artifactId><version>7.1.0.M2</version><!--<exclusions><exclusion><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId></exclusion></exclusions>--></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.1</version></dependency><dependency><groupId>org.activiti.dependencies</groupId><artifactId>activiti-dependencies</artifactId><version>7.1.0.M2</version><type>pom</type></dependency><!-- 生成流程图 --><dependency><groupId>org.activiti</groupId><artifactId>activiti-image-generator</artifactId><version>7.1.0.M2</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.activiti.api</groupId><artifactId>activiti-api-process-model</artifactId><version>7.1.0.M2</version></dependency><dependency><groupId>org.activiti</groupId><artifactId>activiti-engine</artifactId><version>7.1.0.M2</version></dependency><dependency><groupId>org.activiti</groupId><artifactId>activiti-bpmn-model</artifactId><version>7.1.0.M2</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>${spring-boot.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>${spring-boot.version}</version><configuration><mainClass>com.yao.activiti7demo.Activiti7demoApplication</mainClass><skip>true</skip></configuration><executions><execution><id>repackage</id><goals><goal>repackage</goal></goals></execution></executions></plugin></plugins></build></project>

然后是BPM.xml看好它的路径

<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/processdef"><process id="test1" name="test1" isExecutable="true"><documentation>test1</documentation><startEvent id="startEvent1"></startEvent><userTask id="sid-C369C919-5DBA-43E5-84E0-F9B665F0F3B2" name="人事审批" activiti:assignee="张三"><extensionElements><modeler:initiator-can-complete xmlns:modeler="http://activiti.com/modeler"></modeler:initiator-can-complete></extensionElements></userTask><sequenceFlow id="sid-E740DBC1-2D73-45CC-9CEC-1559D0094A23" sourceRef="startEvent1" targetRef="sid-C369C919-5DBA-43E5-84E0-F9B665F0F3B2"></sequenceFlow><userTask id="sid-F7256F24-C3EB-4EEA-956B-678D50AFB171" name="经理审批" activiti:assignee="lisi"><extensionElements><modeler:initiator-can-complete xmlns:modeler="http://activiti.com/modeler"></modeler:initiator-can-complete></extensionElements></userTask><sequenceFlow id="sid-910A5074-B40F-4B8A-BF4F-77A4A3B241AC" sourceRef="sid-C369C919-5DBA-43E5-84E0-F9B665F0F3B2" targetRef="sid-F7256F24-C3EB-4EEA-956B-678D50AFB171"></sequenceFlow><endEvent id="sid-789A2607-3E5C-450B-BC1F-196552938A9C"></endEvent><sequenceFlow id="sid-E28ACB27-F588-4D1B-AD0C-A988877BB89F" sourceRef="sid-F7256F24-C3EB-4EEA-956B-678D50AFB171" targetRef="sid-789A2607-3E5C-450B-BC1F-196552938A9C"></sequenceFlow></process><bpmndi:BPMNDiagram id="BPMNDiagram_test1"><bpmndi:BPMNPlane bpmnElement="test1" id="BPMNPlane_test1"><bpmndi:BPMNShape bpmnElement="startEvent1" id="BPMNShape_startEvent1"><omgdc:Bounds height="30.0" width="30.0" x="100.0" y="163.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="sid-C369C919-5DBA-43E5-84E0-F9B665F0F3B2" id="BPMNShape_sid-C369C919-5DBA-43E5-84E0-F9B665F0F3B2"><omgdc:Bounds height="80.0" width="100.0" x="175.0" y="138.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="sid-F7256F24-C3EB-4EEA-956B-678D50AFB171" id="BPMNShape_sid-F7256F24-C3EB-4EEA-956B-678D50AFB171"><omgdc:Bounds height="80.0" width="100.0" x="314.9999953061343" y="134.99999798834327"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="sid-789A2607-3E5C-450B-BC1F-196552938A9C" id="BPMNShape_sid-789A2607-3E5C-450B-BC1F-196552938A9C"><omgdc:Bounds height="28.0" width="28.0" x="465.0" y="164.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNEdge bpmnElement="sid-910A5074-B40F-4B8A-BF4F-77A4A3B241AC" id="BPMNEdge_sid-910A5074-B40F-4B8A-BF4F-77A4A3B241AC"><omgdi:waypoint x="275.0" y="176.92857067420013"></omgdi:waypoint><omgdi:waypoint x="314.9999953061343" y="176.07142731414314"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="sid-E28ACB27-F588-4D1B-AD0C-A988877BB89F" id="BPMNEdge_sid-E28ACB27-F588-4D1B-AD0C-A988877BB89F"><omgdi:waypoint x="414.9999953061343" y="174.99999798834327"></omgdi:waypoint><omgdi:waypoint x="439.9999976530671" y="174.99999798834327"></omgdi:waypoint><omgdi:waypoint x="439.9999976530671" y="178.0"></omgdi:waypoint><omgdi:waypoint x="465.0" y="178.0"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="sid-E740DBC1-2D73-45CC-9CEC-1559D0094A23" id="BPMNEdge_sid-E740DBC1-2D73-45CC-9CEC-1559D0094A23"><omgdi:waypoint x="130.0" y="178.0"></omgdi:waypoint><omgdi:waypoint x="175.0" y="178.0"></omgdi:waypoint></bpmndi:BPMNEdge></bpmndi:BPMNPlane></bpmndi:BPMNDiagram></definitions>

Controller层

package com.yao.activiti7demo.testMyController;import org.activiti.engine.ProcessEngine;import org.activiti.engine.ProcessEngines;import org.activiti.engine.RepositoryService;import org.activiti.engine.RuntimeService;import org.activiti.engine.repository.Deployment;import org.activiti.engine.repository.ProcessDefinition;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class ProcessController {@Autowiredprivate ProcessEngine processEngine;@RequestMapping("/startProcess")public String startProcess(@RequestParam("name") String name) {System.out.println("name"+name); // ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();RepositoryService repositoryService = processEngine.getRepositoryService();Deployment deployment = repositoryService.createDeployment().addClasspathResource("flow/test1.bpmn20.xml").name("测试流程").deploy();ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().deploymentId(deployment.getId()).singleResult();RuntimeService runtimeService = processEngine.getRuntimeService();runtimeService.startProcessInstanceById(processDefinition.getId(), name);return "Process started successfully";//这里可以跳转到流程页面 查询历史等}}

启动类


浏览器访问路径http://localhost:8081/startProcess” />

数据库中已经成功部署