工作流activiti 6.0与SpringBoot2.0集成
不论是SpringBoot还是SpringMVC集成activiti工作流时候发现集成报错,我们可以找到activiti6.0源码看下就知道,activiti引用的是SpringBoot版本是1.2.6,而我们现在的SpringBoot版本都是2.0.0以上的版本。所以我们需要修改源码让它兼容我们。
大致分为三步:
- 升级SpringBoot依赖并解决编译错误
- 更新activiti-spring-boot-starter-basic版本并安装
- 集成使用Activiti的AutoConfiguration功能
修改源码
- 源码目录结构
-
核心代码是modules,我们主要改
modules—>activiti-spring-boot—>spring-boot-starters—>activiti-spring-boot-starter-basic
-
我们可以在
activiti-spring-boot-starter-basic
的pom文件查看spring-boot-starter-web
的版本(点进去看),一直向上找最后发现在源码最外面的pom文件中spring.boot.version
的版本是1.2.6,我们需要把1.2.6.RELEASE改成2.0.0.RELEASE以上的版本即可。我这里改为2.0.0.RELEASE -
修改完成以后由于版本不统一会出现一些错误,把
activiti-spring-boot
编译一下,哪有错误就修改哪。下面我直接修改了。 -
ProcessEngineEndpoint
类出错,位置是:
-
修改前
-
修改后
-
ProcessEngineMvcEndpoint
类出错,位置是:上一个类ProcessEngineEndpoint
同级 -
修改前
-
修改后
-
接下来修改几个类的位置是:
-
修改
EndpointAutoConfiguration
把类上注解ConditionalOnClass
注释即可
-
修改
DataSourceProcessEngineAutoConfiguration
第一个方法注解ConditionalOnMissingClass
属性name
改为value
-
修改
SecurityAutoConfiguration
类注解AutoConfigureBefore
属性包结构发现变化,改为org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class)
,比原来多了个servlet
- 修改完成以后重新install一下,只install
activiti-spring-boot-starter-basic
,如果没问题的话是可以通过的。
- 修改完成以后重新install一下,只install
-
因为6.0.0版本已经存在所以我们需要修改一下版本号,
activiti-spring-boot-starter-basic
的pom文件加一行<version>6.0.0-boot2</version>
。
-
修改源码最外面的pom文件,把文件中所有
${project.version}
全部替换成6.0.0
。所有关于org.activiti
的加上版本<version>6.0.0</version>
,只截图了一部分。
-
现在已经全部修改完成,install
activiti-spring-boot-starter-basic
一下。其它项目需要引用我们的activiti即可。
点击下载代码