包啓動報Failed to start bean 'documentationPluginsBootstrapper'

記錄一次項目中出現的問題,包啓動時報這個

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作爲參數,在後續邏輯裏自己去填充屬性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章