本文正在参加「金石计划」
有段时间没用 Java 写过项目了,今天因为需求要搭建一个小项目,果然是略显生疏,一路磕磕碰碰的,不过总算都是让我解决了。
回归正题,本篇博文要讲的是,关于配置好 之后,访问其页面却被告诉页面不存在,即默认地址失效的问题。
当然也顺带讲解一下 SpringBoot 和 Springfox 的版本兼容性问题。以下就先讲解如何简单地解决版本兼容性问题。
先介绍一下相关的配置信息, 用的版本是 2.7.10, 是 3.6.1,用的是阿里云的镜像。
的安装配置如下:
讯享网
然后新建一个 类,用于配置一些与 相关的内容,如下:
讯享网
然后将程序启动,发现报错了:
错误原因是 ;
这个异常表示在启动 Spring 应用程序上下文时, 这个 Bean 启动失败,并且嵌套异常是 。通常这种错误发生在调用一个空对象的方法或者访问一个空对象的属性时。
这是因为 SpringBoot 在 2.6.1 之后,SpringMVC 处理程序映射匹配请求路径的默认策略已从 更改为 。而 Springfox 使用的路径匹配还是 ,因此导致了这个错误的发生。
那么这里只需要在配置文件 中,重新修改策略即可:
用 的小伙伴这样改:
讯享网
修改完成之后就能正常访问到页面了!
关于 SpringBoot 在 2.6.1 之后的一些变化,可以参考这篇博文:Springboot 升级到 2.6.1 的坑;
用这个方法解决兼容性问题的小伙伴,是不会碰到 默认地址失效的问题的,用下面一种方法解决兼容性问题就会遇到!
是的,除了上述提到的修改匹配策略之外,还有一种方式也能解决兼容性问题,那就是使用注解 ;

我们只需要在启动类上加上 这个注解就可以了:
添加上注解之后,启动我们的程序看一看,发现没有报错,是正常运行的,在打开 的页面瞅瞅,

发现找不到页面,在看看控制台也是如此:
讯享网
试了试其他相关的 url 路径也是找不到,这是为什么呢?
先简单介绍一下 这个注解:
是 SpringMVC 框架中的一个注解,它的作用是开启对 SpringMVC 的支持。
具体来说,使用 注解会导入一系列与 SpringMVC 相关的配置类,并且会自动注册多个关键组件,如 HandlerMapping、HandlerAdapter、ViewResolver 等。这些组件可以让开发者方便地处理 HTTP 请求和响应、实现 MVC 模式以及生成视图。
但需要注意的是,如果使用了 注解,则默认情况下会禁用 SpringBoot 中的自动配置,因为 已经提供了类似的功能。如果想要同时使用 SpringBoot 的自动配置和,可以通过在配置类上添加 注解来实现。
而 通常是使用 springfox-swagger2 和 springfox-swagger-ui 这两个库来实现的。在使用 注解时,会覆盖掉 SpringBoot 自动配置中的 WebMvcAutoConfiguration,可能导致 的默认地址 失效。因为在 WebMvcAutoConfiguration 类中有一个关于 的默认配置项:
这个类在提供了许多 相关的默认配置,包括默认的 UI 界面路径 。但是,当添加 注解后,SpringMVC 将覆盖掉这个类的配置,进而导致 的默认 UI 界面无法使用。
解决这个问题的方法是手动配置 相关的 Bean,并指定 Swagger UI 的访问路径和资源文件位置。比如可以在配置类中添加以下内容:
讯享网
这样就可以手动配置 Swagger 相关的 Bean,并指定 Swagger UI 的访问路径和资源文件位置,从而解决 导致 默认地址失效的问题。
以上就是 解决 swagger2 默认地址失效 的全部内容了,希望对大家有所帮助!
📝 上篇精讲:【问题解决】解决如何在 CPU 上加载多 GPU 训练的模型
💖 我是 𝓼𝓲𝓭𝓲𝓸𝓽,期待你的关注;
👍 创作不易,请多多支持;
🔥 系列专栏:问题解决 JAVA
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/198679.html