springboot整合activity7(一)

一、Spring Boot 集成 Activiti7(工作流)

此章节首先完成后端的activiti整合,生成工作流所需数据库表,数据库采用mysql。

二、依赖

<dependencies>
    <!-- 引入Activiti7 -->
    <dependency>
        <groupId>org.activiti</groupId>
        <artifactId>activiti-spring-boot-starter</artifactId>
        <version>7.1.0.M4</version>
        <exclusions>
            <exclusion>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.activiti.dependencies</groupId>
        <artifactId>activiti-dependencies</artifactId>
        <version>7.1.0.M4</version>
        <type>pom</type>
    </dependency>
    <!-- 生成流程图 -->
    <dependency>
        <groupId>org.activiti</groupId>
        <artifactId>activiti-image-generator</artifactId>
        <version>7.1.0.M4</version>
    </dependency>
</dependencies>

首先排除掉mybatis依赖,因为使用的mybatis-plus依赖我们大部分都已引入,为了避免与activit7的maven依赖有冲突

三、配置文件修改

spring:

  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: "xxxxx"
    url: jdbc:mysql://localhost:3306/activity-demo?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&rewriteBatchedStatements=true

  activiti:
    #1.flase:默认值。activiti在启动时,对比数据库表中保存的版本,如果没有表或者版本不匹配,将抛出异常
    #2.true: activiti会对数据库中所有表进行更新操作。如果表不存在,则自动创建
    #3.create_drop: 在activiti启动时创建表,在关闭时删除表(必须手动关闭引擎,才能删除表)
    #4.drop-create: 在activiti启动时删除原来的旧表,然后在创建新表(不需要手动关闭引擎)
    database-schema-update: true
    #检测历史表是否存在 activiti7默认没有开启数据库历史记录 启动数据库历史记录
    db-history-used: true
    #记录历史等级 可配置的历史级别有none, activity, audit, full
    #none:不保存任何的历史数据,因此,在流程执行过程中,这是最高效的。
    #activity:级别高于none,保存流程实例与流程行为,其他数据不保存。
    #audit:除activity级别会保存的数据外,还会保存全部的流程任务及其属性。audit为history的默认值。
    #full:保存历史数据的最高级别,除了会保存audit级别的数据外,还会保存其他全部流程相关的细节数据,包括一些流程参数等。
    history-level: full
    #校验流程文件,true表示自动部署resources下的processes文件夹里的流程文件
    check-process-definitions: false
    # id值是否使用uuid,false表示使用数据库自增值
    use-strong-uuids: true

springBoot启动类修改

  1. 排除 springSecurity

    @SpringBootApplication(exclude = {SecurityAutoConfiguration.class,  ManagementWebSecurityAutoConfiguration.class })
    

    启动类修改,排除以上类,因为activiti7深度依赖springSecurity,而我们这里不需要,故排除。

  2. SpringSecurityConfig.java

    一个空的springSecrity配置文件,不加会报错

    @Configuration
    public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
    }
    
  3. 实现UserDetailsService接口

    @Slf4j
    @Component
    public class SelfUserDetailsServiceImpl  implements UserDetailsService {
     
        @Override
        public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
            List<GrantedAuthority> authorities= AuthorityUtils.commaSeparatedStringToAuthorityList("");
            return new User(username,"",authorities);
        }
    }
    

这里排除SpringSecurity的方法略显丑陋,如果有更好的排除SpringSecurity的方法可以教一下我

初始化数据表

运行springboot项目启动类,第一次运行,会检查数据库是否有工作流所需表,如果没有,会自动生成,生成的表都act_开头,一共25张表,这里做一下基础介绍。

在这里插入图片描述
工作流相关表分为4类

  1. act_ge开头,存放通用数据、一些流程文件等

  2. act_hi开头,存放工作流程中的历史数据,如历史任务信息,历史流程参数等

  3. act_re开头,存放工作流流程定义和发布的信息

  4. act_ru开头,存放工作流当前正在进行流程的信息,一个流程走完,ru表会删除相关内容,查询历史信息就是act_hi中获取

注意:7.1.0.M4 版本自动生成的表字段不全,所以还需运行如下SQL:

-- 修复Activiti7的M4版本缺失字段Bug
-- ----------------------------
alter table ACT_RE_DEPLOYMENT add column PROJECT_RELEASE_VERSION_ varchar(255) DEFAULT NULL;
alter table ACT_RE_DEPLOYMENT add column VERSION_ varchar(255) DEFAULT NULL;
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值