swagger2版本与3版本差异的报错与处理

swagger2版本与3版本差异的报错与处理

配了几个小时,最后发现swagger2.xx与3.xx之间做了很大的改动。

那首先就先看一下问题。

问题

开始学习swagger,第一步就给我上一课。

开始我的配置为

		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-swagger2</artifactId>
			<version>3.0.0</version>
		</dependency>
		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-swagger-ui</artifactId>
			<version>3.0.0</version>
		</dependency>

然后开启swagger注解使用

@Configuration
@EnableSwagger2//开启Swagger2
public class SwaggerConfig {
}

访问swagger-UI

http://localhost:8080/swagger-ui.html

结果:

网站报404

解决方案

方案一(降低配置)

long time later

我想是不是我的版本问题。

------- 确实是。

swagger注解使用*

@Configuration
@EnableSwagger2//开启Swagger2
public class SwaggerConfig {
}

访问swagger-UI

http://localhost:8080/swagger-ui.html

以上的配置需求是:

<!--		 Swagger  2.9.0-->
		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-swagger2</artifactId>
			<version>2.9.2</version>
		</dependency>

		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-swagger-ui</artifactId>
			<version>2.9.2</version>
		</dependency>
		

方案二(继续使用3.xx)

这个的配置需求是:

<!--		swagger 3.0.0-->
		<dependency>
			<groupId>io.springfox</groupId>
			<artifactId>springfox-boot-starter</artifactId>
			<version>3.0.0</version>
		</dependency>

一个就可以,2.9.xx到3.xx 有较大的的改变。

开启swagger服务改为了

@EnableOpenApi
public class SwaggerConfig {}

访问路径改为

http://localhost:8080/swagger-ui/index.html

如果希望访问方便的话可以设置以下内容:

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    //配置路径
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
//        路径查看maven下的jar包 下面的路径
//        addResourceHandler 在源码中的解释为:
//   Add a resource handler to serve static resources.
//	 The handler is invoked for requests that match one of the specified URL path patterns.
//        即 被调用的url路径

//   addResourceLocations 在源码中是这样解释的:
//   Add one or more resource locations from which to serve static content.(即静态资源路径)

//        resourceChain 在源码中的解释为:
//Configure a chain of resource resolvers and transformers to use.
        registry.addResourceHandler("/swagger-ui/**")
                .addResourceLocations(
                        "classpath:/META-INF/resources/webjars/springfox-swagger-ui/")
                .resourceChain(false);
    }
//    配置访问路径
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
//        addViewController 在源码中的解释为:
//        Map a URL path or pattern to a view controller
//       to render a response  with  the configured status code and view.
//  即(将 URL 路径或模式映射到视图控制器以使用配置的状态代码和视图呈现响应)
//        setViewName 在源码中的解释为:
//        Set the view name to return. 即(设置要返回的视图名称)
        registry.addViewController("/s6ui")
        .setViewName("redirect:/swagger-ui/index.html");
//        这个主要是方便。 
    }
}

注:这个/s6ui 是我随便起的,swagger-ui => s6ui ;中间6个字母。

springfox-swagger-ui:3.0.0的结构如下:

image-20210728121014083

springfox-swagger-ui:2.9.0的结构如下:

image-20210728122755131

对比看二者的差异还是很大的,swagger-ui.html 改为index.html 到了springfox-swagger-ui下面。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值