Springboot2.6+Swagger2 no puede escanear la interfaz: ¡No hay operaciones definidas en las especificaciones!

Primero verifique que el escaneo de arrogancia esté habilitado, habilite: verdadero; después de que la ruta de escaneo esté configurada correctamente, todavía no se muestra

Springboot2.6 + swagger2.9.2 no puede escanear la solución del problema de la interfaz
En un entorno de múltiples módulos, swaggerConfig está configurado en el módulo público y se descubre que algunos módulos no pueden escanear la interfaz del Controlador. Como se muestra abajo:

Después de la inspección, algunos módulos olvidaron agregar la siguiente configuración:

spring:
  mvc:
    pathmatch:
      matching-strategy: ant_path_matcher

Adjunte la dependencia SwaggerConfig (que se encuentra en Internet)
como springfox-boot-starter

@Configuration
@EnableOpenApi
clase pública SwaggerConfig {

    @Bean
    public Docket createRestApi() {         return new Docket(DocumentationType.OAS_30)                 .enable(true) //Si habilitar swagger                 .apiInfo(apiInfo())                 //Establecer qué interfaces están expuestas a Swagger display.select                 ()                 // Escanear todas las API anotadas es más flexible de esta manera.apis                 (RequestHandlerSelectors.withClassAnnotation(Api.class)) // .paths(PathSelectors.any()) //¡Esto filtrará todas las rutas!                 .build();     }









    private ApiInfo apiInfo() {         // Personalizar con ApiInfoBuilder         return new ApiInfoBuilder()                 // Establecer título.título                 ("título")                 // Descripción.descripción                 ("Descripción")                 //                 Información del autor.contacto(nuevo contacto("nombre de usuario " , "sitio web", "correo"))                 //                 versión.version("número de versión:" + "1.0")                 .build();     }











    /**
     * Springboot2.6 entrará en conflicto con springfox incluso si está equipado con ant_path_matcher
     * Resolver la incompatibilidad entre springboot2.6 y springfox No se pudo iniciar el bean 'documentationPluginsBootstrapper'; excepción anidada...
     *
     * @return
     */
    @Bean
    public BeanPostProcessor estático springfoxHand lerProviderBeanPostProcessor() {         return new BeanPostProcessor() {

            @Override
            public Object postProcessAfterInitialization(Object bean, String beanName) lanza BeansException {                 if (bean instancia de WebMvcRequestHandlerProvider || bean instancia de WebFluxRequestHandlerProvider) {                     personalizarSpringfoxHandlerMappings(getHandlerMappings(bean));                 }                 retorno de frijol;             }




            privado <T extiende RequestMappingInfoHandlerMapping> void personalizarSpringfoxHandlerMappings(Lista<T> asignaciones) {                 Lista<T> copia = mapeos.stream()                         .filter(mapping -> mapeo.getPatternParser() == null)                         .collect(Collectors.toList() );                 mapeos.clear();                 mapeos.addAll(copiar);             }





            @SuppressWarnings("unchecked")
            lista privada<RequestMappingInfoHandlerMapping> getHandlerMappings(Object bean) {                 try {                     Campo de campo = ReflectionUtils.findField(bean.getClass(), "handlerMappings");                     campo.setAccessible(verdadero);


                    return (List<RequestMappingInfoHandlerMapping>) field.get(bean);
                } catch (IllegalArgumentException | IllegalAccessException e) {                     throw new IllegalStateException(e);                 }             }         };     }




Supongo que te gusta

Origin blog.csdn.net/qq_34412985/article/details/131562054
Recomendado
Clasificación