记录一次项目中出现的问题,包启动时报这个
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 版权协议,转载请附上原文出处链接和本声明。