首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

扩展DelegatingWebMvcConfiguration导致Swagger PageNotFound

问题描述:

扩展DelegatingWebMvcConfiguration导致Swagger PageNotFound

回答:

在Spring Boot项目中,使用Swagger来生成API文档是很常见的做法。但有时候在扩展DelegatingWebMvcConfiguration类时,可能会导致Swagger的页面无法访问,出现PageNotFound错误。

DelegatingWebMvcConfiguration是Spring Boot提供的一个用于配置Web MVC的类,它会自动配置一些Web MVC相关的功能,如静态资源处理、视图解析器等。但是,当我们自定义一个继承自DelegatingWebMvcConfiguration的配置类时,可能会覆盖掉一些默认的配置,导致Swagger的页面无法正常访问。

解决这个问题的方法是在自定义的配置类中添加一些额外的配置,以确保Swagger的页面能够正常访问。具体的步骤如下:

  1. 确保项目中已经引入了Swagger的相关依赖,如 springfox-swagger2 和 springfox-swagger-ui。
  2. 在自定义的配置类中,继承自 WebMvcConfigurationSupport,并重写 addResourceHandlers 方法。在该方法中,添加一个资源处理器,将 Swagger UI 的静态资源路径映射到对应的目录下。示例代码如下:
代码语言:java
复制
@Configuration
public class CustomWebMvcConfiguration extends WebMvcConfigurationSupport {

    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/swagger-ui/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/")
                .resourceChain(false);
    }
}
  1. 确保在自定义的配置类上添加了 @EnableWebMvc 注解,以启用自定义的Web MVC配置。
  2. 确保在启动类上添加了 @EnableSwagger2 注解,以启用Swagger的相关功能。

完成以上步骤后,重新启动项目,访问 http://localhost:8080/swagger-ui.html,应该能够正常看到Swagger的页面了。

推荐的腾讯云相关产品:

腾讯云提供了一系列的云计算产品,包括云服务器、云数据库、云存储等。对于部署Spring Boot项目和使用Swagger的场景,推荐使用腾讯云的云服务器(CVM)和对象存储(COS)。

腾讯云云服务器(CVM)是一种弹性、安全、高性能的云服务器产品,可以满足各种规模的应用需求。详情请参考:腾讯云云服务器

腾讯云对象存储(COS)是一种高可靠、低成本的云存储服务,适用于存储和处理大规模非结构化数据。详情请参考:腾讯云对象存储

注意:以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

4分55秒

day12/下午/243-尚硅谷-尚融宝-使用swagger-bootstrap-ui扩展

领券