[英]Swagger and Spring MVC integration
当将swagger与mvc集成并使用基于Java的配置时
@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/");
}
}
并使用url 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的配置?
在基于Java的配置中,一个类从WebMvcConfigurerAdapter退出,在该类文件中通过重写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);
}
}
试试你的标记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 ,这是使用Docket API- swagger-example的示例应用程序的链接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.