Spring Boot集成官方的Modeler设计器

来源:互联网 发布:不敢在淘宝上刻公章 编辑:程序博客网 时间:2024/06/06 08:14

环境说明

  • 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: falsesecurity:  basic:    enabled: falseserver:  port: 8000mybatis:  mapper-locations: classpath:/mappers/*.xml

测试

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

问题

  • 关于汉化,stencilset.json为界面上各组件的配置,从网上找一个替换一下就好
  • 直接画出来的图,在流程图上可能会乱码,我们需要设置一下字体,有时候这样设置好了也会乱码,需要检查当前系统是否有设置的字体
@Configurationpublic 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设计器
好了,就这样吧。。。