最近项目需要使用Activiti工作流,找了很久也没见网上有集成Activiti6.0的教程,于是就顺便总结了一下本人集成的经验。希望对跟我一样有这方面需求的Activiti使用者有用。由于项目工期较紧,没来得及写demo,争取空了就把demo补上。大家也可以参照github上liuruijie大神的代码结合我的经验进行集成:大神的代码地址:https://github.com/DangerousPrayer/spring-boot-with-activiti 。 demo请看如下文章:https://mp.csdn.net/postedit/88317835
第一步:引包
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-basic</artifactId>
<version>6.0.0</version>
</dependency>
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-json-converter</artifactId>
<version>6.0.0</version>
<exclusions>
<exclusion>
<groupId>org.activiti</groupId>
<artifactId>activiti-bpmn-model</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 流程编辑器静态文件依赖 -->
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-codec</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-css</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-svg-dom</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-svggen</artifactId>
<version>1.7</version>
</dependency>
第二步:添加三个controller类并在每个类上加上@RequestMapping("service")
StencilsetRestResource #获取编辑器组件及配置项信息。
ModelEditorJsonRestResource #根据modelId获取model的节点信息,编辑器根据返回的json进行绘图。
ModelSaveRestResource #编辑器制图之后,将节点信息以json的形式提交给这个Controller,然后由其进行持久化操作。
第三步:把编辑器用到的html、js、css、图标等文件放在项目的resources的对应文件夹下,并修改editor-app->app-cfg.js的'contextRoot' : '/service'
diagram-viewer(流程跟踪组键)、editor-app、favicon.ico放在static下
modeler.html 放在templates下
stencilset.json(编辑器组键) 放在 resources下
如果遇到集成后登陆跳出鉴权的输入框,有三种处理方式
1、在配置文件中加 (推荐使用)
security:
basic:
enabled: false
2、在启动类加 @EnableAutoConfiguration(exclude = { org.activiti.spring.boot.SecurityAutoConfiguration.class}) 配置排除security的影响
3、在使用到的activiti的jar中配置下排除security:
<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>
注意;如果这样做了还是加不出来;可以看看是不是加载编辑器组键的时候报错了,如果是应该是json转换问题,activiti默认是用jackso你项目可能使用了fastjson进行转换,这时就需要进行专门的json处理才行