SpringBoot2.0整合activiti7示例

前文《SpringBoot2.0整合activiti6示例》已经介绍了SpringBoot2.0与activiti6的集成,虽然现在activiti6的使用量还是很大,但是activiti7将来毕竟是趋势,所以本文将介绍如何整合SpringBoot2.0与activiti7,并且通过这两次代码整合,最后会分析activiti7相比activiti6有哪些改进。

maven的pom.xml文件

application.properties

RankMovie.bpmn20.xml

和activiti6一样,也是在src/main/resources下新建processes目录,然后把流程文件放进来。

这边activiti7和activiti6不一样的是,除了支持原来以.bpmn.bpmn20.xml为后缀的文件,还新增了支持json格式的文件。

Activiti7Config.java

这是个配置类,因为 activiti7相比activiti6新增了与SpringSecurity的集成,进行用户权限的管理,所以这边的WebSecurityConfigurerAdapter是 SpringSecurity WEB环境下需要用到的配置(这边不了解 SpringSecurity 的小伙伴建议先了解下它)。

该配置类还存储了一些初始的用户数据到内存,虽然这边使用的是InMemoryUserDetailsManager,实际项目中大家肯定要改为JdbcUserDetailsManager,已达到使用数据库来存储用户、用户组、权限数据的目的。当然也可以自己实现UserDetailsManager来自定义存储。

另外该配置类还配置了一些activiti里面的实时任务监听器,还有参数创建监听器,流程完成监听器等等。

SecurityUtil.java

这是一个工具类,主要是为了方便模拟SpringSecurity的用户登录。

MoviesConnector.java

这个类是为名叫Get Movie Description这个serviceTask流程节点服务的,自动设置需要的参数。

如果不理解的,可以先查看下如何使用 serviceTask

DemoController.java

这就是测试controller类了,它里面介绍了如何使用ProcessRuntime、TaskRuntime等api,这都是activiti的核心api。

写到这里,不禁要提一笔,网上很多整合SpringBoot和activiti7的文章,里面使用的activiti的api还都是用的 activiti 6的旧api,虽然官方也说暂时没有丢弃旧的api,但是新的api更简洁更高效,并且删除了原来的identityService和formService,所以activiti7首选还是要使用新的api。

具体细节就不说了,代码里的注释也很详细了。

Content.java

这是测试设置和获取activiti里的变量时需要用到的bean

Activiti7Application.java

启动类,因为集成了SpringSecurity,所以web环境下加上@EnableWebSecurity,另外又由于集成了SpringSecurity ,所以默认会拦截我们所有的访问路径到登录页面,所以有的人想通过在@SpringBootApplication里设置(exclude = {org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class})来规避掉这个问题,但是我个人不要建议这样做,除非你的activiti的生产环境不需要用户权限控制,或者你自己实现一套权限控制?

如果真的要过滤一些路径不让 SpringSecurity 来拦截,应该是在上面的config类里的configure(HttpSecurity http)来进行配置。

工程结构图

测试

到了这边,代码就都解释完了,接下来就启动工程,进行测试

这就算启动成功了,然后访问 http://localhost:9090/process

可以看到一切OK。

总结activiti7相比activiti6的一些改变

1.数据库表对比,可以看到删除了原来与用户相关的一些表

2.资源文件增加了对json格式文件的支持

3.增加了与SpringSecurity的集成

4.核心api进行了更新和删减,现在的api更高效更简洁

代码下载

https://download.csdn.net/download/u013081610/12273591

最后

本文系本人原创,首发在 http://791202.com ,如要转载,请注明出处。

0

《SpringBoot2.0整合activiti7示例》有5个想法

发表评论

邮箱地址不会被公开。