1. 依赖

     <!--  activiti 依赖      --><dependency><groupId>org.activiti</groupId><artifactId>activiti-spring-boot-starter</artifactId><version>7.0.0.Beta2</version></dependency><dependency><groupId>org.activiti.dependencies</groupId><artifactId>activiti-dependencies</artifactId><version>7.1.0.M4</version><type>pom</type></dependency>

2. yml配置

     #Spring设置-----------------------spring:datasource:username: rootpassword: "181038"driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/activiti?useUnicode=true&characterEncoding=UTF8&useSSL=false#   username: root#   password: 123activiti:database-schema-update: truedb-history-used: truehistory-level: fullcheck-process-definitions: true

3. 流程自动部署

在springBoot 中 activiti流程是自动部署的,前提是要在resource目录下新建一个process目录,用来存放bpmn文件。

4. 测试

在test包下进行测试类的编写

如下是个例子:

     @Slf4j@RunWith(SpringRunner.class)@SpringBootTestclass DemoApplicationTests {@Autowiredprivate ProcessRuntime processRuntime ;@Autowiredprivate TaskRuntime taskRuntime ;@Autowiredprivate SecurityUtils securityUtils ;void contextLoads() {}/** 查看流程定义* @param* @returns void*/@Testvoid findProcess(){securityUtils.logAs("126857");Page<ProcessDefinition> processDefinitionPage = processRuntime.processDefinitions(Pageable.of(0, 5));log.info("查到的流程总数"+processDefinitionPage.getTotalItems());for (ProcessDefinition processDefinition:processDefinitionPage.getContent()){log.info("=========================================");log.info("流程内容:"+processDefinition);log.info("=========================================");}}}
 ProcessRuntime 和TaskRuntime 都是activiti7的接口。

因为是测试,所以要告诉SpringSecurity当前进行操作的用户是谁,自定义的securityUtils.logAs(“126857”);就是这么做的,如下:
这里需要注意的是用户的角色必须要有ROLE_ACTIVITI_USER,否则会报拒绝访问异常

     @Slf4j@Componentpublic class SecurityUtils {@AutowiredMyUserDetailsService myUserDetailsService ;public  void logAs(String identification){UserDetails userDetails = myUserDetailsService.loadUserByUsername(identification);if(userDetails == null){throw new IllegalStateException("user["+identification+"] doesn't exist");}log.info("> Logged in as: "+userDetails);SecurityContextImpl securityContext = new SecurityContextImpl();UsernamePasswordAuthenticationToken authentication =new UsernamePasswordAuthenticationToken(userDetails,userDetails.getPassword(),userDetails.getAuthorities());securityContext.setAuthentication(authentication);SecurityContextHolder.setContext(securityContext);}
}

5. 最后

如果部署时报Unknown column ‘VERSION_‘ in ‘field list‘)
这是activiti的表缺少字段引起的,解决办法之一就是换版本,如下pom.xml

      <dependency><groupId>org.activiti</groupId><artifactId>activiti-spring-boot-starter</artifactId><version>7.0.0.Beta2</version></dependency>

Activiti7整合SpringBoot相关推荐

  1. 解决:Activiti7与SpringBoot整合时,默认生成的activiti数据库中只有17张表,无另外8张历史表

    问题 Activiti7与SpringBoot整合时,默认生成的activiti数据库中只有17张表,无另外8张历史表. 原因 Activiti默认关闭了历史表的使用. 解决 在连接数据库的appli ...

  2. activiti7和SpringBoot的整合

    Activiti7发布正式版本之后,它和SpringBoot2.x已经完全整合开发了 1.1 添加相关的依赖 <dependency><groupId>org.springfr ...

  3. 使用Gradle整合SpringBoot+Vue.js-开发调试与打包

    为什么80%的码农都做不了架构师?>>>    非常感谢两位作者: kevinz分享的文章<springboot+gradle+vue+webpack 组合使用> 首席卖 ...

  4. 微信公众号授权步骤详细步骤介绍和整合springboot开发(java版)

    文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源. 一.微信公众号授权步骤 首先到微信公众平台注册账号,可以看到有四种类型(服务号,订阅号,小程 ...

  5. spring日志报错提醒_使用爬虫框架htmlunit整合springboot出现的一个不兼容问题

    使用爬虫框架htmlunit整合springboot不兼容的一个问题 本来使用htmlunit爬虫爬取数据非常正常好用,之前一直是直接java程序或者整合Javaswing界面,都没有问题,但是后来整 ...

  6. java kafka client_Kafka Java Client基本使用及整合SpringBoot

    kafka-clients 添加依赖 org.apache.kafka kafka-clients 2.5.0 消费者 Consumer 代码上总体可以分为三部分:消费者的配置消费者的配置在 org. ...

  7. [RabbitMQ]整合SpringBoot

    整合SpringBoot 创建项目 引入依赖 <dependencies><!--RabbitMQ 依赖--><dependency><groupId> ...

  8. mall整合SpringBoot+MyBatis搭建基本骨架

    本文主要讲解mall整合SpringBoot+MyBatis搭建基本骨架,以商品品牌为例实现基本的CRUD操作及通过PageHelper实现分页查询. mysql数据库环境搭建 下载并安装mysql5 ...

  9. Shiro 整合 SpringBoot

    Shiro 整合 SpringBoot shiro主要有三大功能模块 Subject:主体,一般指用户. SecurityManager:安全管理器,管理所有Subject,可以配合内部安全组件.(类 ...

  10. JWT认证原理、整合springboot实战应用

    JWT认证原理.整合springboot实战应用 1.什么是JWT 2.JWT能做什么 3.与传统的session认证做对比 4.JWT结构 5.JWT的封装方法 1.什么是JWT JWT(Json ...

最新文章

  1. Quasar Akka Vertx Norbert 比较
  2. python 日志模块 logging
  3. 【错误记录】Tinker 热修复示例运行报错 ( Execution failed for task ‘:app:tinkerProcessD‘ . tinkerId is not set!!! )
  4. SD--关于定价过程中的存储顺序的参考结构和参考字段的使用代码跟踪
  5. 01-iOS之wifi通讯开发简介
  6. PHP on Windows Azure 入门教学系列(2) ——利用SQL Azure做一个简单的访问计数器...
  7. Java PropertyPermission equals()方法与示例
  8. 简单了解static
  9. html实现 左图右文_让CSS flex布局最后一行左对齐的N种方法
  10. CCF201503-1 图像旋转
  11. 从程序员到项目经理(五):程序员加油站 -- 不是人人都懂的学习要点
  12. 两年质保,只此一加!一加9系列推出两年质保
  13. Python使用Apriori算法分析导演请某演员后还会请哪个演员
  14. ava集合---ArrayList的实现原理
  15. 完全二叉树的叶子节点数公式_二叉树基础知识
  16. 第七版辅导书和第六版 通信原理_通信原理(第七版)同步辅导及习题全解
  17. 最新kali之arping
  18. 计算机科学与技术_基于Java web的计算机图书借阅管理系统的设计与实现.docx
  19. 业务数据分析-大体逻辑
  20. 这个世界没有想象中的那么好,但似乎 ...... 也没那么糟

热门文章

  1. 854计算机专业基础,2020年哈工大考研《854计算机基础》考试大纲
  2. C++ 的API 设计指导
  3. 液晶显示器面板型号速查[转贴]
  4. cad快速看图2020|cad迷你画图2020 附安装教程
  5. 深度学习 机器学习 花书免费下载《Deep Learning》
  6. 海思SVP简介(sample)
  7. 时间片轮转(RR)调度算法(详解版)
  8. 体育运动赛事小程序开发制作
  9. 小米mini路由器,刷openwrt,制作usb打印机服务器
  10. HTML5桌面应用程序开发