最近有个重要的项目要求使用带自定义表单的工作流。要求灵活配置流程。选用了较稳定的Flowable6.72版本。但面临着一个问题。教材上,Flowable6.7.2要求匹配的SpringBoot版本是2.6.2.需要对项目的Boot版本从2.3releae升到2.6.2,其他还好。不存在有类编译问题或类找不到问题。就是这个循环依赖,2.3支持循环依赖,2.6默认是不支持的。由于个别同学业务代码质量问题,导致必须要支持循环依赖(重构有风险),支持的话需要在Application.yml里添加配置 spring.main.allow-circular-references: true,问题就来了。现有项目已经有20多个。不可能每个项目都去添加该配置。只能在上层通用的组件包中默认开启。于是有了下列分析 :
在Spring的启动类中找到了如下线索:
只需要在预准备bean工厂前将如下变量设置成true就行了:
而正好Boot的监听器支持该设置,如下:
通过该行代码,可以将Spring2.3无感升级到2.6.2版本。