版权声明:本文为博主原创文章,转载请注明出处。 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.java
、ModelEditorJsonRestResource.java
、ModelSaveRestResource.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设计器
好了,就这样吧。。。