2017-05-31 2 views
0

wenn integrieren Prahlerei mit mvc und Java-basierten Konfiguration wieSwagger und Spring MVC Integration

@Configuration 
@EnableSwagger2 
@PropertySource("classpath:application.properties") 
public class SwaggerConfig extends WebMvcConfigurerAdapter { 
    . 
    . 
    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/"); 
     registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); 
    } 
} 

und verwenden url http://localhost:8080/admin-api/admin/swagger-ui.html es 404. geben verwenden, wenn i addResourceHandlers von SwaggerConfig Konfigurationsklasse zu entfernen und konfigurieren durch xml wie

<mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/" /> 
<mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/" /> 

mit der gleichen uRL http://localhost:8080/admin-api/admin/swagger-ui.html es ohne Probleme laufen. Wie kann ich Java-basierte Konfiguration verwenden?

+0

können Sie Swagger @ API geben –

Antwort

0

In Prahlerei - Java-basierte Konfiguration eine Klasse exteds von WebMvcConfigurerAdapter, in dieser Klasse Datei durch Überschreibung addResourceHandlers wie unter

@Configuration 
public class AppConfig extends WebMvcConfigurerAdapter { 
    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
    registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/"); 
    registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); 
    super.addResourceHandlers(registry); 
    } 
} 
0

Versuchen Sie SwaggerConfig mit @EnableWebMvc das Markieren und registrieren "**/**" als eine andere ResourceHandler, wie folgt :

@Override 
public void addResourceHandlers(ResourceHandlerRegistry registry) { 
    registry.addResourceHandler("**/**").addResourceLocations("classpath:/META-INF/resources/"); 
    registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); 
} 

Schauen Sie sich auch Docket, hier ist der Link für die s umfangreiche Anwendung mit Docket API-swagger-example.