springcloud 整合activiti

 <properties>
        <activiti.version>7.0.0.GA</activiti.version>
        <activiti-modeler.version>6.0.0</activiti-modeler.version>
    </properties>


    <dependencies>

<!--        <dependency>-->
<!--            <groupId>com.ruoyi</groupId>-->
<!--            <artifactId>ruoyi-common-security</artifactId>-->
<!--        </dependency>-->

        <!--1-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--2-->
        <!-- SpringCloud Alibaba Nacos -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>


        <!-- SpringCloud Alibaba Nacos Config -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

        <!-- SpringCloud Alibaba Sentinel -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>

        <!-- SpringBoot Actuator -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <!--3-->
        <dependency>
            <groupId>org.activiti.dependencies</groupId>
            <artifactId>activiti-dependencies</artifactId>
            <version>${activiti.version}</version>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-bpmn-layout</artifactId>
            <version>${activiti-modeler.version}</version>
        </dependency>
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-spring-boot-starter-basic</artifactId>
            <version>${activiti-modeler.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.mybatis</groupId>
                    <artifactId>mybatis</artifactId>
                </exclusion>
                <exclusion>
                    <artifactId>activation</artifactId>
                    <groupId>javax.activation</groupId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-security</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-diagram-rest</artifactId>
            <version>5.23.0</version>
            <exclusions>
                <exclusion>
                    <artifactId>spring-security-config</artifactId>
                    <groupId>org.springframework.security</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-security-core</artifactId>
                    <groupId>org.springframework.security</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-security-crypto</artifactId>
                    <groupId>org.springframework.security</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-security-web</artifactId>
                    <groupId>org.springframework.security</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-modeler</artifactId>
            <version>5.23.0</version>
            <exclusions>
                <exclusion>
                    <artifactId>spring-security-config</artifactId>
                    <groupId>org.springframework.security</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-security-core</artifactId>
                    <groupId>org.springframework.security</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-security-crypto</artifactId>
                    <groupId>org.springframework.security</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>spring-security-web</artifactId>
                    <groupId>org.springframework.security</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>

        <!--mp-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.20</version>
        </dependency>

  <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
        </dependency>

    </dependencies>

yaml

ruoyi:
  dev: 127.0.0.1
  prod: ruoyi-nacos
# Tomcat
server:
  port: 9205
# Spring
spring:
  application:
    # 应用名称
    name: ruoyi-activiti
  profiles:
    # 环境配置
    active: dev
  cloud:
    nacos:
      discovery:
        # 服务注册地址
        server-addr: ${ruoyi.dev}:8848
      config:
        # 配置中心地址
        server-addr: ${ruoyi.dev}:8848
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/ruoyi-activiti?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&nullCatalogMeansCurrent=true
    username: root
    password: root1234
    druid:
      max-active: 20
      max-wait: 5000
      initial-size: 1
      filters: stat,log4j,wall
  activiti:
      # 这条配置为true,会默认加在resources/processes包下的流程文件(.bpmn),如果刘成文件没有会导致项目启动报错,所以设置为false
      check-process-definitions: false
      database-schema: ACTIVITI
      # 设置为true,如果库中没有activiti对应表,就创建
      database-schema-update: true
      history-level: audit
      db-history-used: true
mybatis-plus:
    # 对应的 XML 文件位置
    mapperLocations: classpath:mapper/**/*.xml
    # 实体扫描,多个package用逗号或者分号分隔
    typeAliasesPackage:  com.ruoyi.activiti
    # 针对 typeAliasesPackage,如果配置了该属性,则仅仅会扫描路径下以该类作为父类的域对象
    #typeAliasesSuperType: Class<?>
    # 如果配置了该属性,SqlSessionFactoryBean 会把该包下面的类注册为对应的 TypeHandler
    #typeHandlersPackage: null
    # 如果配置了该属性,会将路径下的枚举类进行注入,让实体类字段能够简单快捷的使用枚举属性
    #typeEnumsPackage: null
    # 启动时是否检查 MyBatis XML 文件的存在,默认不检查
    checkConfigLocation: false
    # 通过该属性可指定 MyBatis 的执行器,MyBatis 的执行器总共有三种:
    # SIMPLE:该执行器类型不做特殊的事情,为每个语句的执行创建一个新的预处理语句(PreparedStatement)
    # REUSE:该执行器类型会复用预处理语句(PreparedStatement)
    # BATCH:该执行器类型会批量执行所有的更新语句
    executorType: SIMPLE
    # 指定外部化 MyBatis Properties 配置,通过该配置可以抽离配置,实现不同环境的配置部署
    configurationProperties: null
    configuration:
      # 自动驼峰命名规则(camel case)映射
      # 如果您的数据库命名符合规则无需使用 @TableField 注解指定数据库字段名
      mapUnderscoreToCamelCase: true
      # 默认枚举处理类,如果配置了该属性,枚举将统一使用指定处理器进行处理
      # org.apache.ibatis.type.EnumTypeHandler : 存储枚举的名称
      # org.apache.ibatis.type.EnumOrdinalTypeHandler : 存储枚举的索引
      # com.baomidou.mybatisplus.extension.handlers.MybatisEnumTypeHandler : 枚举类需要实现IEnum接口或字段标记@EnumValue注解.
      defaultEnumTypeHandler: org.apache.ibatis.type.EnumTypeHandler
      # 当设置为 true 的时候,懒加载的对象可能被任何懒属性全部加载,否则,每个属性都按需加载。需要和 lazyLoadingEnabled 一起使用。
      aggressiveLazyLoading: true
      # MyBatis 自动映射策略
      # NONE:不启用自动映射
      # PARTIAL:只对非嵌套的 resultMap 进行自动映射
      # FULL:对所有的 resultMap 都进行自动映射
      autoMappingBehavior: PARTIAL
      # MyBatis 自动映射时未知列或未知属性处理策
      # NONE:不做任何处理 (默认值)
      # WARNING:以日志的形式打印相关警告信息
      # FAILING:当作映射失败处理,并抛出异常和详细信息
      autoMappingUnknownColumnBehavior: NONE
      # Mybatis一级缓存,默认为 SESSION
      # SESSION session级别缓存,同一个session相同查询语句不会再次查询数据库
      # STATEMENT 关闭一级缓存
      localCacheScope: SESSION
      # 开启Mybatis二级缓存,默认为 true
      cacheEnabled: true
      log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
      jdbc-type-for-null: NULL
      map-underscore-to-camel-case: true
      database-id: mysql
    global-config:
      # 是否打印 Logo banner
      banner: true
      # 是否初始化 SqlRunner
      enableSqlRunner: false
      dbConfig:
        # 主键类型
        # AUTO 数据库ID自增
        # NONE 空
        # INPUT 用户输入ID
        # ASSIGN_ID 全局唯一ID
        # ASSIGN_UUID 全局唯一ID UUID
        idType: ASSIGN_UUID
        # 表名前缀
        tablePrefix: null
        # 字段 format,例: %s,(对主键无效)
        columnFormat: null
        # 表名是否使用驼峰转下划线命名,只对表名生效
        tableUnderline: true
        # 大写命名,对表名和字段名均生效
        capitalMode: false
        # 全局的entity的逻辑删除字段属性名
        logicDeleteField: null
        # 逻辑已删除值
        logicDeleteValue: 2
        # 逻辑未删除值
        logicNotDeleteValue: 0
        # 字段验证策略之 insert,在 insert 的时候的字段验证策略
        # IGNORED 忽略判断
        # NOT_NULL 非NULL判断
        # NOT_EMPTY 非空判断(只对字符串类型字段,其他类型字段依然为非NULL判断)
        # DEFAULT 默认的,一般只用于注解里
        # NEVER 不加入 SQL
        insertStrategy: NOT_NULL
        # 字段验证策略之 update,在 update 的时候的字段验证策略
        updateStrategy: NOT_NULL
        # 字段验证策略之 select,在 select 的时候的字段验证策略既 wrapper 根据内部 entity 生成的 where 条件
        selectStrategy: NOT_NULL

启动类


@SpringBootApplication(exclude = SecurityAutoConfiguration.class)
@EnableDiscoveryClient
public class RuoyiActivitiApplication {
    public static void main(String[] args) {

        SpringApplication.run(RuoyiActivitiApplication.class, args);
        System.out.println(
                "(♥◠‿◠)ノ゙  activiti启动成功   ლ(´ڡ`ლ)゙  \n" +
                        " .-------.       ____     __        \n" +
                        " |  _ _   \\      \\   \\   /  /    \n" +
                        " | ( ' )  |       \\  _. /  '       \n" +
                        " |(_ o _) /        _( )_ .'         \n" +
                        " | (_,_).' __  ___(_ o _)'          \n" +
                        " |  |\\ \\  |  ||   |(_,_)'         \n" +
                        " |  | \\ `'   /|   `-'  /           \n" +
                        " |  |  \\    /  \\      /           \n" +
                        " ''-'   `'-'    `-..-'              ");
    }

}

好的,下面是springcloud整合activiti7的教程: 1. 新建一个Spring Boot项目,并添加以下依赖: ```xml <!--Spring Cloud--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <!--Activiti--> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring-boot-starter-basic</artifactId> <version>7.1.0.M6</version> </dependency> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring-boot-starter-rest-api</artifactId> <version>7.1.0.M6</version> </dependency> ``` 2. 配置Eureka注册中心和Activiti REST API: ```yaml spring: application: name: activiti7-demo server: port: 8000 eureka: client: service-url: defaultZone: http://localhost:8761/eureka/ activiti: rest: app-name: activiti7-demo path-mapping: /activiti server: servlet: context-path: /activiti ``` 3. 创建一个简单的流程定义,以及对应的流程实例和任务: ```java // 创建流程定义 BpmnModel bpmnModel = new BpmnModel(); Process process = new Process(); bpmnModel.addProcess(process); process.setId("myProcess"); process.setName("My Process"); StartEvent startEvent = new StartEvent(); startEvent.setId("startEvent"); process.addFlowElement(startEvent); UserTask userTask = new UserTask(); userTask.setId("userTask"); userTask.setName("User Task"); process.addFlowElement(userTask); EndEvent endEvent = new EndEvent(); endEvent.setId("endEvent"); process.addFlowElement(endEvent); process.addFlowElement(new SequenceFlow("startEvent", "userTask")); process.addFlowElement(new SequenceFlow("userTask", "endEvent")); Deployment deployment = repositoryService.createDeployment() .addBpmnModel("myProcess.bpmn20.xml", bpmnModel) .deploy(); // 创建流程实例 ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess"); // 完成任务 Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult(); taskService.complete(task.getId()); ``` 4. 启动项目,并在Eureka注册中心中查看服务是否已注册。然后访问`http://localhost:8000/activiti/management/process-definitions`可以看到刚刚创建的流程定义。 至此,springcloud整合activiti7的教程完成。希望对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

20岁30年经验的码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值