2017-05-31 143 views
0

當MVC整合招搖而使用基於Java的配置一樣揚鞭和Spring MVC集成

@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/"); 
    } 
} 

,並使用網址http://localhost:8080/admin-api/admin/swagger-ui.html它給404 當我從SwaggerConfig配置類刪除addResourceHandlers並通過XML配置像

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

使用相同的網址http://localhost:8080/admin-api/admin/swagger-ui.html它運行沒有問題。我如何使用基於java的配置?

+0

你可以給swagger的@API –

回答

0

在招搖 - 基於Java配置 從WebMvcConfigurerAdapter類exteds,在類文件被覆蓋addResourceHandlers像下面

@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

嘗試標記您的SwaggerConfig@EnableWebMvc和註冊"**/**"另一個ResourceHandler,如下:

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

也看看Docket,這裏是鏈接爲s充足的應用程序使用Docket API- swagger-example