首页
学习
活动
专区
工具
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)是一种高可靠、低成本的云存储服务,适用于存储和处理大规模非结构化数据。详情请参考:腾讯云对象存储

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

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

相关·内容

Swagger扩展为你添油加气

介绍一款Swagger扩展 日常接口开发中都需要用到Swagger来生成接口文档并用 Swagger 自带支持的模拟请求进行测试,但是需要支持认证或者上传文件等操作需要自行去按接口进行开发才可支持,现在介绍一款封装了...Swagger 的中间件来避免一些繁琐的操作即可支持常用功能 1 如何使用 安装 NetPro.Swagger 执行以下命令或者 Nuget 包管理器中搜索安装最新版 Install-Package...NetPro.Swagger -Version 3.1.6 Swagger 注入 public void ConfigureServices(IServiceCollection services,..."Email": "swagger@netcore.com", "Name": "swagger", "Url": "swagger@netcore.com"...此库只是NetPro项目下的一个扩展功能,其中还包括很多其他常用组件与开箱即用打包所有组件的NetPro.Web.Api组件更加方便容易的开发Api接口 项目地址: https://github.com

27610
  • 使用 Swagger扩展组件Plugin 机制自定义API文档的生成

    简史 让我们先理一下springfox与swagger的关系。...由于Spring的流行,Marty Pitt编写了一个基于Spring的组件swagger-springmvc,用于将swagger集成到springmvc中来。...pringfox-swagger2依然是依赖OSA规范文档,也就是一个描述API的json文件,而这个组件的功能就是帮助我们自动生成这个json文件,我们会用到的另外一个组件springfox-swagger-ui...的可扩展组件 https://github.com/springfox/springfox/tree/master/springfox-spi/src/main/java/springfox/documentation...自定义扩展功能的话,只需要实现某个xxxPlugin的接口中的apply方法就可以。apply方法中我们去手动扫描我们自定义的注解,然后加上相关实现的逻辑即可。

    1.6K60

    Spring 全家桶之 Spring Boot 2.6.4(五)- WebMvcAutoConfiguration(Part D)

    四、扩展和修改 Spring Boot Web MVC 配置 Spring Boot官方文档中第 8.1.1....The “Spring Web MVC Framework”小节中提到了如何扩展和完全替代Spring Boot关于Spring Mvc的自动配置 图片 扩展Web MVC配置 Spring Boot在自动配置很多组件的时候...,DelegatingWebMvcConfiguration类中包含了一个setConfigurers方法 图片 @Autowire标注在setConfigurers方法上,方法的参数就要从容器中获取...为什么@EnableWebMv会导致所有自动配置全部失效 @EnableWebMvc导入了一个DelegatringWebMvcConfiguration类 图片 DelegatringWebMvcConfiguration...@EnableWebMvc注解往容器中导入了一个WebMvcConfigurationSupport的子类DelegatringWebMvcConfiguration,这就会导致WebMvcAutoConfiguration

    71610

    SpringBoot笔记(5)

    @WebFilter(urlPatterns={“/css/*”,“/images/*”}) @WebListener 推荐可以这种方式; 扩展:DispatchServlet 如何注册进来 容器中自动配置了...xxxConfiguration;+ @Bean替换、增加容器中默认组件;视图解析器 Web应用 编写一个配置类实现 WebMvcConfigurer 即可定制化web功能;+ @Bean给容器中再扩展一些组件...implements WebMvcConfigurer @EnableWebMvc + WebMvcConfigurer —— @Bean 可以全面接管SpringMVC,所有规则全部自己重新配置; 实现定制和扩展功能...会 @Import(DelegatingWebMvcConfiguration.class) 3、DelegatingWebMvcConfiguration 的 作用,只保证SpringMVC最基本的使用...WebMvcAutoConfiguration 里面的配置要能生效 必须 @ConditionalOnMissingBean(WebMvcConfigurationSupport.class) 5、@EnableWebMvc 导致

    19520

    一波带走,教你Spring Boot如何扩展、接管MVC?

    但是往往Spring Boot提供默认的配置不一定适合实际的需求,因此需要能够定制MVC的相关功能,这篇文章就介绍一下如何扩展和全面接管MVC。...还是添加拦截器,例子如下: /** * @EnableWebMvc:全面接管MVC,导致自动配置类失效 */ @Configuration @EnableWebMvc public class WebMvcConfig...) public @interface EnableWebMvc { } 其实重要的就是这个@Import(DelegatingWebMvcConfiguration.class)注解了,Spring中的注解...,快速导入一个配置类DelegatingWebMvcConfiguration,源码如下: @Configuration(proxyBeanMethods = false) public class DelegatingWebMvcConfiguration...一切都已经揭晓了,@EnableWebMvc导入了一个WebMvcConfigurationSupport类型的配置类,导致了自动配置类WebMvcAutoConfiguration标注的@@ConditionalOnMissingBean

    26930

    自定义SpringBoot默认MVC配置?好几个坑,这篇文章必须珍藏

    被废弃的WebMvcConfigurerAdapter 在Spring Boot1.0+中,可以使用WebMvcConfigurerAdapter来扩展Spring MVC的功能。...一定自定义了WebMvcConfigurationSupport,那么将导致WebMvcAutoConfiguration无法实例化,进而内部初始化配置将全部无法实例化。...因此,并不会因为实现了该接口而导致默认配置失效。不仅如此,Spring Boot还支持存在多个WebMvcConfigurer的实现类。...该内部类继承了DelegatingWebMvcConfiguration类,DelegatingWebMvcConfiguration是对Spring MVC进行配置的一个代理类,它结合缺省配置和用户配置来定义...不会实例化;第二,使用@EnableWebMvc注解,等于扩展了WebMvcConfigurationSupport,但没有重写任何方法,此时同样会导致WebMvcAutoConfiguration不会实例化

    4K54

    JAVA中自定义扩展Swagger的能力,自动通过枚举类生成参数取值含义描述的实现策略

    这样对于开发人员维护起来的成本就会增加,久而久之会导致接口文档的内容与实际代码处理情况不相匹配。 那么,有没有什么简单的方式,可以让接口文档自动根据对应枚举类的内容变更而动态变更呢?...Swagger没有提供原生的此方面能力支持,但是我们可以通过一些简单的方式对Swagger的能力进行扩展,让Swagger支持我们的这种诉求。一起来看下如何实现吧。...扩展可行性分析 既然想要改变生成的Swagger文档中指定字段的描述内容,那么首先就应该是要搞清楚Swagger中现在的内容生成逻辑是如何处理的。我们以@ApiParam为例进行分析。...(1:新增;2:更新;3:删除) 实现自定义扩展处理器 至此呢,我们已经做好了全部的准备工作,下面就可以按照前面分析的策略,来自定义一个实现类去实现相关接口,将我们的处理转换逻辑注入到Swagger框架中去...总结 好啦,关于如何通过自定义注解的方式扩展Swagger的能力让Swagger支持自动从指定的枚举类生成接口文档中的字段描述的实现思路,这里就给大家分享到这里啦。

    3.4K40
    领券