swagger配置 根據指定註解載入Api

2021-10-12 09:18:39 字數 1596 閱讀 3485

廢話不多說 先上**

@configuration

@enableswagger2

public

class

swagger2configuration

private apiinfo apiinfo()

/** * 所有標識了@api註解的類都要被掃瞄到,

** @return

*/public predicate withclassannotation

(final class<

?extends

annotation

>..

. annotations)

private

static function?>

, boolean>

annotationpresent

(final class<

?extends

annotation

>..

. annotations)

/** * 當前類或者其父類、介面是否存在當前註解中的任意乙個

* @param clazz 當前類

* @param annotations 目標介面

* @return

*/private

static

boolean

hasanyannotation

(class clazz

,final class<

?extends

annotation

>..

. annotations)}if

(!include)}if

(include)

}return

false;}

private

static optional<

?extends

class

<

?>>

declaringclass

(requesthandler input)

}

我們通常會將一些公用的東西放在common模組,然後業務模組引用公用模組,

再來看下我們常用的配置方式

@bean

public docket createrestapi()

private apiinfo apiinfo()

按照上面這種配置的話,現在我們有乙個業務的包名是daisy.combat.***.controller 那麼是不是意味者我們需要給上面的daisy.framework.api換成新的daisy.combat.***.controller,這個時候就有乙個問題了,我們的專案是分模組開發,通用模組會被很多模組引用,所以我們不能使用硬編碼的形式去解決它。

解決方案:

使用配置動態設定basepackage的值,這個時候需要解決配置多個路徑的問題

掃瞄新增了指定註解的類、介面等。。。本文就是從這個思路出發

我們可以自定義乙個api介面,當我們需要將它暴露給**哥的時候,只需要給它或者它的父類新增該註解即可,這樣的話不管我們的公用模組被什麼業務模組使用,對於公用模組而言都不用理會。

swagger常用註解

一 swagger常用註解 1 與模型相關的註解 兩個註解 2 與介面相關的註解 六個註解 二 幾個注意點 為了在swagger ui上看到輸出,至少需要兩個註解 api和 apioperation 即使只有乙個 apiresponse,也需要使用 apiresponses包住 對於 apiimpl...

swagger常用註解

一 swagger常用註解 1 與模型相關的註解 兩個註解 2 與介面相關的註解 六個註解 二 幾個注意點 為了在swagger ui上看到輸出,至少需要兩個註解 api和 apioperation 即使只有乙個 apiresponse,也需要使用 apiresponses包住 對於 apiimpl...

swagger常用註解

swagger2常用註解說明 2017年08月01日 14 00 38 說明 1.這裡使用的版本 springfox swagger2 2.4 springfox swagger ui 2.4 2.這裡是說明常用註解的含義和基本用法 也就是說已經對swagger進行整合完成 沒有整合的請參見 spr...