包启动报Failed to start bean ‘documentationPluginsBootstrapper’

  • Post author:
  • Post category:其他

记录一次项目中出现的问题,包启动时报这个

Failed to start bean 'documentationPluginsBootstrapper'; nested exception is com.google.common.util.concurrent.ExecutionError: java.lang.StackOverflowError

看着吓了一跳咋还StackOverflowError了,后面用最笨的方法,将新增的代码一点一点去掉后,发现了原因
是整合swagger时,两个接口的入参引起来的循环依赖导致的。
比如,两个接口入参是下面这样的

@ApiOperation(value = "新增商品",notes = "新增商品方法",response = GoodsVo.class)
    @PostMapping("/add")
    public void add(@Valid GoodsVo entity) {
    }
    。。。省略

@ApiOperation(value = "/add",notes = "新增设计案例表方法",response = CaseDesignVo.class)
    @PostMapping("/add")
    public void add(@Valid CaseDesignVo entity) {
    }

然后GoodsVo 里包含CaseDesignVo 属性,而CaseDesignVo 里也包含GoodsVo属性导致循环依赖报的StackOverflowError。
知道原因后解决就很简单了,另起两个bean作为参数,在后续逻辑里自己去填充属性。


版权声明:本文为bazhuayu_1203原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。