Is there a way I can stop springfox swagger from scanning the model classes? Is there a way I can stop springfox swagger from scanning the model classes? spring spring

Is there a way I can stop springfox swagger from scanning the model classes?


There is a way to prevent Sprinfox framework from generating a Swagger model or parameter information of specified ignored types. You have to use the method ignoredParameterTypes in SwaggerSpringMvcPlugin or Docket class to let it know the types to be ignored.

Swagger 1 Example

Here is an example of Swagger 1 Java configuration with ignored types. It definitely had an impact on my application startup time.

@Configuration@EnableSwaggerpublic 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() {         ...     }}

Swagger 2 Example

Here is an example of Swagger 2 Java configuration with ignored types,

@Configuration@EnableSwagger2public 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() {         ...     }}


With swagger 3.0 @Hidden annotation is available which is present at package io.swagger.v3.oas.annotations

It can be used on top of the class or method to exclude the resource in swagger documentation.


Springfox Swagger2 acquire UI data through GET /v2/api-docs, which will mapping to springfox.documentation.swagger2.web.Swagger2Controller.getDocumentation().So you can just create a bean to take place of 'ServiceModelToSwagger2Mapper' with your sanning logic:

@Primary@Componentclass CustomServiceModelToSwagger2Mapper : ServiceModelToSwagger2MapperImpl() {      override fun mapDocumentation(from: Documentation?): Swagger? {               // scanning logics...      }}

refer to my another related answer : https://stackoverflow.com/a/64057512/14332259