• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于在IDEA中SpringBoot项目中activiti工作流的使用详解

springboot 搞代码 4年前 (2022-01-09) 25次浏览 已收录 0个评论

记录一下工作流的在Springboot中的使用,,顺便写个demo,概念,什么东西的我就不解释了,如有问题欢迎各位大佬指导一下。

1.创建springboot项目后导入依赖

 <dependency>
      <groupId>org.activiti</groupId>
      <artifactId>activiti-spring-boot-starter-basic</artifactId>
      <version>6.0.0</version>
    </dependency>

添加配置之后再springboot启动类后面加上一行代码否则启动时会报错

@SpringBootApplication(exclude = SecurityAutoConfiguration.class)

添加数据源以及activiti的配置

spring:
 activiti:
  database-schema-update: drop?create 
   //默认为false,activiti在启动的时候会对比数据库中的表中保存的版本,如果不一样会抛出异常
   // true activiti会对数据库中的表进行更新操作,如果表不存在,则自动创建
   // create_drop 在activiti启动的时候创建表,关闭时删除表,必须手动关闭
   // drop-create 在启动的时候先删除表后再创建新的表
  check-process-definitions: false
 datasource:
  driver-class-name: com.mysql.cj.jdbc.Driver
  url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
  username: root
  password: root

2.初始化activiti表

这里一共有3种方式去创建

第一种

@Test
  public void initTables() {
    //创建数据源
//    DriverManagerDataSource dataSource=new DriverManagerDataSource();
//    dataSource.setDriverClassName("com.mysql.jdbc.Driver");
//    dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/test");
//    dataSource.setUsername("root");
//    dataSource.setPassword("root");

    // 创建流程引擎的配置
    ProcessEngineConfiguration configuration = ProcessEngineConfiguration
        .createStandaloneProcessEngineConfiguration();
    configuration.setJdbcDriver("com.mysql.cj.jdbc.Driver");
    configuration.setJdbcUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&nullCatalogMeansCurrent=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC");
    configuration.setJdbcUsername("root");
    configuration.setJdbcPassword("root");
//		configuration.setDataSource(dataSource);
    /**
     * ProcessEngineConfiguration.DB_SCHEMA_UPDATE_FALSE 如果数据库里面没有activit的表,也不会创建
     * ProcessEngineConfiguration.DB_SCHEMA_UPDATE_CREATE_DROP 创建表,使用完之后删除
     * ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE 如果数据库里面没有表,就创建
     *
     * dorp-create 代表如果数据库里面有表,那么先删除再创建
     *
     */
    //配置表的初始化的方式
    configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);

    //得到流程引擎
    ProcessEngine processEngine=configuration.buildProcessEngine();
    System.out.println(processEngine);
  }

第二种配置activiti.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:aop="http://www.springframework.org/schema/aop" 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
	http://www.springframework.org/schema/context
	http://www.springframework.org/schema/context/spring-context.xsd
<mark>本文来源gaodaimacom搞#代%码@网-</mark>	http://www.springframework.org/schema/tx
	http://www.springframework.org/schema/tx/spring-tx.xsd
	http://www.springframework.org/schema/aop
	http://www.springframework.org/schema/aop/spring-aop.xsd">


  <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
    <property name="jdbcDriver" value="com.mysql.cj.jdbc.Driver"></property>
    <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test?useUnicode=true%26nullCatalogMeansCurrent=true%26characterEncoding=utf8%26useSSL=false%26serverTimezone=UTC"></property>
    <property name="jdbcUsername" value="root"></property>
    <property name="jdbcPassword" value="root"></property>
    <!--
    flase: 默认值。activiti在启动时,会对比数据库表中保存的版本,如果没有表或者版本不匹配,将抛出异常。
    true: activiti会对数据库中所有表进行更新操作。如果表不存在,则自动创建。
    create_drop: 在activiti启动时创建表,在关闭时删除表(必须手动关闭引擎,才能删除表)。
    drop-create: 在activiti启动时删除原来的旧表,然后在创建新表(不需要手动关闭引擎)。 -->
    <property name="databaseSchemaUpdate" value="drop-create"></property>
  </bean>
</beans>

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于在IDEA中SpringBoot项目中activiti工作流的使用详解

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址