Spring Boot集成官方的Modeler设计器

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/xufei_0320/article/details/78129417

环境说明

  • activiti版本为5.22.0
  • Spring Boot版本为1.5.2
  • java8

准备工作

  • 下载activiti-5.22.0的源码,并解压
  • 一个最基本的Spring Boot项目
  • 添加依赖,这三个都得有
<!-- activiti -->
<dependency>
    <groupId>org.activiti</groupId>
    <artifactId>activiti-spring-boot-starter-basic</artifactId>
    <version>${activiti.version}</version>
</dependency>

<dependency>
    <groupId>org.activiti</groupId>
    <artifactId>activiti-modeler</artifactId>
    <version>${activiti.version}</version>
</dependency>

<dependency>
    <groupId>org.activiti</groupId>
    <artifactId>activiti-diagram-rest</artifactId>
    <version>${activiti.version}</version>
</dependency>

copy代码

现在准备工作都已经结束了,后面就正式开始整合的工作了

  • 整合之后的基本结构大概是这样的
  • 这里写图片描述

  • 其中 1 部分来自activiti-modeler

  • 2、3、4 部分来自activiti-webapp-explorer2
  • 拷贝过来之后就类似我现在这样的结构了,但是现在这样是不行的,还需要做一些修改

  • 确认stencilset.json文件是否放到了resource目录下,如果不是需要修改StencilsetRestResource.java中”stencilset.json”为”xxx/stencilset.json”

InputStream stencilsetStream = this.getClass().getClassLoader().getResourceAsStream("stencilset.json");
  • StencilsetRestResource.javaModelEditorJsonRestResource.javaModelSaveRestResource.java上加上@RequestMapping(“xxx”),xxx是啥就看你心情了
  • 然后需要改app-cfg.js
ACTIVITI.CONFIG = {
    'contextRoot' : '/activiti-explorer/service',
};

改为:

ACTIVITI.CONFIG = {
    'contextRoot' : '/xxx',
};
  • ModelSaveRestResource.java参数修改,参考自chenhai201
  • 这里写图片描述
  • 修改JsonpCallbackFilte.java加上@WebFilter("/xxx/*")

配置

配置的话跟上一篇文章整合的时候没有区别

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/activiti_learning
    username: root
    password: 
    druid:
      validationQuery: SELECT 1
      initialSize: 10
      minIdle: 10
      maxActive: 200
      minEvictableIdleTimeMillis: 180000
      testOnBorrow: false
      testWhileIdle: true
      removeAbandoned: true
      removeAbandonedTimeout: 1800
      logAbandoned: true
      poolPreparedStatements: true
      maxOpenPreparedStatements: 100
  activiti:
    check-process-definitions: false
security:
  basic:
    enabled: false
server:
  port: 8000
mybatis:
  mapper-locations: classpath:/mappers/*.xml

测试

  • 启动项目
  • 访问localhost:xxx/modeler.html?modelId=1看到这样的界面
  • 这里写图片描述

问题

  • 关于汉化,stencilset.json为界面上各组件的配置,从网上找一个替换一下就好
  • 直接画出来的图,在流程图上可能会乱码,我们需要设置一下字体,有时候这样设置好了也会乱码,需要检查当前系统是否有设置的字体
@Configuration
public class ActivitiConfig {

    @Autowired
    public PlatformTransactionManager transactionManager;

    @Autowired
    public DruidDataSource druidDataSource;

    @Bean
    public SpringProcessEngineConfiguration getProcessEngineConfiguration() {
        SpringProcessEngineConfiguration config = new SpringProcessEngineConfiguration();
        config.setDataSource(druidDataSource);
        config.setTransactionManager(transactionManager);
        config.setDatabaseType("mysql");// 必须小写。。。,不配置的话,activiti会根据DataSource去判断的
        config.setDatabaseSchemaUpdate("true");

        //流程图字体
        config.setActivityFontName("宋体");
        config.setAnnotationFontName("宋体");
        config.setLabelFontName("宋体");
        return config;
    }
}

demo代码

Spring Boot整合modeler设计器
好了,就这样吧。。。

猜你喜欢

转载自blog.csdn.net/xufei_0320/article/details/78129417