文档章节

崛起于Springboot2.X之集成工作流Activiti5.22(42)

就叫程舰
 就叫程舰
发布于 2018/12/17 19:41
字数 807
阅读 73
收藏 14

声明:该博客主要是Springboot1.X和Springboot2.X集成Activiti5.22版本,并说一下两个版本的搭建不同的地方

技术:Springboot2.0.3+mysql+jpa(自动生成25张表)+Activiti5.22 /然后Springboot1.5.9重新集成一下

地址:简单集成activiti地址

1、创建工程,勾选Web模块,然后修改为2.0.3的版本

2、pom文件中添加关于Activiti的依赖包

<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>
        <scope>runtime</scope>
    </dependency>
    <!--activiti-->
    <dependency>
        <groupId>org.activiti</groupId>
        <artifactId>activiti-spring-boot-starter-basic</artifactId>
        <version>5.22.0</version>
    </dependency>
    <dependency>
        <groupId>org.activiti</groupId>
        <artifactId>activiti-spring</artifactId>
        <version>5.22.0</version>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.5</version>
    </dependency>
    <dependency>
        <groupId>org.activiti</groupId>
        <artifactId>activiti-modeler</artifactId>
        <version>5.22.0</version>
    </dependency>
    <!--jpa-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
</dependencies>

3、添加配置文件application.yml

#整合Activit
spring:
  jpa:
    hibernate:
      ddl-auto: update   # first:create table ,next :update table
    database: MYSQL
    #整合JPA
    show-sql: true
  activiti:
    check-process-definitions: false
  datasource:
    url: jdbc:mysql://192.138.3.15:3306/testMdxl?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false
    username: 
    password: 
    driver-class-name: com.mysql.jdbc.Driver
    maxActive: 20
    initialSize: 1
    maxWait: 60000
    minIdle: 1
    testWhileIdle: true
  security:
    user:
      name: user
      password: 1234

4、导入Activiti相关的源码

就是下载activiti的框架,然后从里面拿出部分代码作为自己项目的一部分全的。

一会我上传到码云上面吧,我发现文件挺多的,尴尬,码云地址==》点击  三个java文件,一个public文件夹,还有一个json文件:三部分。

5、编写controller层

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import org.activiti.editor.constants.ModelDataJsonConstants;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Created by mujiuitan on 2018/12/17.
 */
@RestController
@RequestMapping(value = "/activiti")
public class ActivitiController {

    //创建模型,这个模型数据写死,主要是没有前台技术支持啊
    @RequestMapping("/create")
    public void create(HttpServletRequest request, HttpServletResponse response) {
        try {
            ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

            RepositoryService repositoryService = processEngine.getRepositoryService();

            ObjectMapper objectMapper = new ObjectMapper();
            ObjectNode editorNode = objectMapper.createObjectNode();
            editorNode.put("id", "canvas");
            editorNode.put("resourceId", "canvas");
            ObjectNode stencilSetNode = objectMapper.createObjectNode();
            stencilSetNode.put("namespace", "http://b3mn.org/stencilset/bpmn2.0#");
            editorNode.put("stencilset", stencilSetNode);
            Model modelData = repositoryService.newModel();

            ObjectNode modelObjectNode = objectMapper.createObjectNode();
            modelObjectNode.put(ModelDataJsonConstants.MODEL_NAME, "hello1111");
            modelObjectNode.put(ModelDataJsonConstants.MODEL_REVISION, 1);
            String description = "hello1111";
            modelObjectNode.put(ModelDataJsonConstants.MODEL_DESCRIPTION, description);
            modelData.setMetaInfo(modelObjectNode.toString());
            modelData.setName("hello1111");
            modelData.setKey("12313123");
            //保存模型
            repositoryService.saveModel(modelData);
            repositoryService.addModelEditorSource(modelData.getId(), editorNode.toString().getBytes("utf-8"));
            response.sendRedirect(request.getContextPath() + "/modeler.html?modelId=" + modelData.getId());
        } catch (Exception e) {
            System.out.println("创建模型失败:");
        }
    }
}

6、在启动类上添加

@EnableAutoConfiguration(exclude = {
        //org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration.class,
        org.activiti.spring.boot.SecurityAutoConfiguration.class
})

7、启动,测试!

访问路径:http://localhost:8080/activiti/create

刚开始访问的时候会有一个弹框:提供用户名和密码,刚刚在配置文件已经写了,user 和 1234 填写这两个就好了,暂时没有想到怎么解决这个麻烦的弹框方法

然后生成的25张表,我记忆里好像是21张,至于多出来不知道哈,用Jpa实现的。

8、Springboot1.X集成Activiti5.22 的不同之处

8.1 在配置文件中,Springboot1.X就不用写下面的配置,也不会有弹框

security:
  user:
    name: user
    password: 1234

7.2 在启动类,Springboot1.X需要多添加一个类

@EnableAutoConfiguration(exclude = {
        org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration.class,
        org.activiti.spring.boot.SecurityAutoConfiguration.class
})

org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration.class 这个类在Springboot2.X已经注释了,因为版本升级已经找不到这个类了,但是1.X还有,把这个加上就不会有弹框出现让填写用户名和密码了。

结束,感谢!

© 著作权归作者所有

共有 人打赏支持
就叫程舰

就叫程舰

粉丝 115
博文 199
码字总数 142903
作品 0
海淀
程序员
私信 提问
加载中

评论(2)

乀龙舌兰
乀龙舌兰
赞👍
就叫程舰
就叫程舰
@满口蛀牙_007 这个可以嘛
崛起于Springboot2.X之多节点mongodb实现区块链交易记录(36)

序言:根据前两篇崛起于Springboot2.X之区块链单节点mysql实现交易记录和崛起于Springboot2.X之Mongodb多数据源处理,进行整合,实现区块链多节点mongodb实现交易记录方案。直接上代码了,不...

木九天
2018/08/23
0
0
崛起于Springboot2.X之Jedis+Redis单机(15)

1、pom添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency> <dependency><groupId>redis.clients</gr......

木九天
2018/07/15
0
0
anycmd工作流引擎直接对接程序员的思维模式

anycmd开源工作流引擎 anycmd开源权限引擎准备再次创新,将用不绕弯的方式实现个开源工作流引擎,目的是以直接的方式对接程序员的思维方式,信仰这种思维模式是未来的基本技能,未来的人们应...

anycmd
2017/12/15
389
3
崛起于Springboot2.X之哨兵模式Redis(16)

介绍:springboot的哨兵模式如果只是使用redis的情况下,在单机redis 的前提下,直接在配置文件添加几行配置就可以了,因为springboot有自动配置加载的功能就可以了 1、把单机的redis中的配置...

木九天
2018/07/15
0
0
崛起于Springboot2.X之配置文件详解(10)

序言:针对公司开发配置文件的一些基础常识 1、核心配置文件 springboot框架也被我认为一个工具,它的主要核心文件为application.properties,又可以命名为application.yml亦或者application...

木九天
2018/07/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

数据库技术-Mysql主从复制与数据备份

数据库技术-Mysql 主从复制的原理: MySQL中数据复制的基础是二进制日志文件(binary log file)。一台MySQL数据库一旦启用二进制日志后,其作为master,它的数据库中所有操作都会以“事件”...

须臾之余
昨天
12
0
Git远程仓库——GitHub的使用(一)

Git远程仓库——GitHub的使用(一) 一 、 Git远程仓库 由于你的本地仓库和GitHub仓库之间的传输是通过SSH加密的,所以需要一下设置: 步骤一、 创建SSH key 在用户主目录下,看看有没有.ss...

lwenhao
昨天
2
0
SpringBoot 整合

springBoot 整合模板引擎 SpringBoot 整合Mybatis SpringBoot 整合redis SpringBoot 整合定时任务 SpringBoot 整合拦截器...

细节探索者
昨天
0
0
第二个JAVA应用

第二个JAVA应用 方法一:配置文件: # cd /usr/local/tomcat/conf/# vim server.xml</Host> <Host name="www.wangzb.cc" appBase="/data/wwwroot/www.wangzb.cc" //引用所......

wzb88
昨天
0
0
2019年阿里Java面试必问:JVM与性能优化+Redis+设计模式+分布式

前言 一年之计在于春 金三银四已经要到来,2019的新的开始,作为一个开发人员,你是否面上了自己理想的公司,薪资达到心中理想的高度? 面试:如果不准备充分的面试,完全是浪费时间,更是对...

火力全開
昨天
16
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部