web-dev-qa-db-ja.com

springfox swaggerによるモデルクラスのスキャンを停止する方法はありますか?

私は現在、Springfox Swaggerを使用して、Javaconfig。APIは約75秒(Springfoxなしでは元々20秒)でスキャンプロセス全体を開始します)でSpringBootアプリケーションを文書化します。現在、モデル情報なしでコントローラー情報が必要です。APIの起動を高速化するために、起動プロセスからモデルスキャンを除外する方法はありますか?また、高速化する他の方法はありますか?Swaggerを使用しています1.2

7
kugar

Sprinfoxフレームワークが指定された無視されたタイプのSwaggerモデルまたはパラメーター情報を生成しないようにする方法があります。 ignoredParameterTypesまたはSwaggerSpringMvcPluginクラスのメソッドDocketを使用して、無視するタイプを通知する必要があります。

Swagger1の例

これは、Swagger 1 Java構成を無視した型で構成した例です。これは、アプリケーションの起動時間に間違いなく影響を与えました。

@Configuration
@EnableSwagger
public class SwaggerConfiguration {

    @Autowired
    private SpringSwaggerConfig springSwaggerConfig;

    @Bean
    public SwaggerSpringMvcPlugin api() {
        Class[] clazz = {MyClassA.class, MyClassB.class};

        return new SwaggerSpringMvcPlugin(this.springSwaggerConfig)
                .apiInfo(apiInfo())
                ...
                .ignoredParameterTypes(clazz);
    }

     private ApiInfo apiInfo() {
         ...
     }
}

Swagger2の例

これはSwagger2の例ですJava型を無視した構成、

@Configuration
@EnableSwagger2
public class SwaggerConfiguration {

    @Bean
    public Docket api() {
        Class[] clazz = {MyClassA.class, MyClassB.class};

        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("my-group")
                .select()
                .paths(PathSelectors.any())
                .build()
                .apiInfo(apiInfo())
                .ignoredParameterTypes(clazz);
    }

     private ApiInfo apiInfo() {
         ...
     }
}
9
Indra Basak