`
zhoumeng87
  • 浏览: 71564 次
文章分类
社区版块
存档分类
最新评论

springcloud Alibaba 2021.0.1.0 springboot 2.7.0 整合 Swagger3.0 报错解决方案

 
阅读更多

1. 引入依赖,版本 3.0.0 只引入一个即可

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

2. 配置类 SwaggerConfig

package org.fh.config;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import org.springframework.boot.actuate.autoconfigure.endpoint.web.CorsEndpointProperties;
import org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties;
import org.springframework.boot.actuate.autoconfigure.web.server.ManagementPortType;
import org.springframework.boot.actuate.endpoint.ExposableEndpoint;
import org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver;
import org.springframework.boot.actuate.endpoint.web.EndpointMapping;
import org.springframework.boot.actuate.endpoint.web.EndpointMediaTypes;
import org.springframework.boot.actuate.endpoint.web.ExposableWebEndpoint;
import org.springframework.boot.actuate.endpoint.web.WebEndpointsSupplier;
import org.springframework.boot.actuate.endpoint.web.annotation.ControllerEndpointsSupplier;
import org.springframework.boot.actuate.endpoint.web.annotation.ServletEndpointsSupplier;
import org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.util.StringUtils;

import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.oas.annotations.EnableOpenApi;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

/**
 * 说明:Swagger 接口API生成
 * 作者:FH Admin Q313596790
 * from:fhadmin.cn
 */
@Configuration
@EnableOpenApi
public class SwaggerConfig {

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.OAS_30)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("org.fh.controller"))	// 为当前包路径
                .paths(PathSelectors.any())
                .build();
    }

	private ApiInfo apiInfo() {
		return new ApiInfoBuilder()
				.title("FH Admin Swagger3 RESTful API") 	// 页面标题
				.version("3.0")								// 版本号
				.description("fhadmin.cn")				    // 描述
				.build();
	}
	
	/**
	  * 增加如下配置可解决Spring Boot 2.6.x以上 与Swagger 3.0.0 不兼容问题
	**/
    @Bean
    public WebMvcEndpointHandlerMapping webEndpointServletHandlerMapping(WebEndpointsSupplier webEndpointsSupplier, ServletEndpointsSupplier servletEndpointsSupplier, ControllerEndpointsSupplier controllerEndpointsSupplier, EndpointMediaTypes endpointMediaTypes, CorsEndpointProperties corsProperties, WebEndpointProperties webEndpointProperties, Environment environment) {
        List<ExposableEndpoint<?>> allEndpoints = new ArrayList();
        Collection<ExposableWebEndpoint> webEndpoints = webEndpointsSupplier.getEndpoints();
        allEndpoints.addAll(webEndpoints);
        allEndpoints.addAll(servletEndpointsSupplier.getEndpoints());
        allEndpoints.addAll(controllerEndpointsSupplier.getEndpoints());
        String basePath = webEndpointProperties.getBasePath();
        EndpointMapping endpointMapping = new EndpointMapping(basePath);
        boolean shouldRegisterLinksMapping = this.shouldRegisterLinksMapping(webEndpointProperties, environment, basePath);
        return new WebMvcEndpointHandlerMapping(endpointMapping, webEndpoints, endpointMediaTypes, corsProperties.toCorsConfiguration(), new EndpointLinksResolver(allEndpoints, basePath), shouldRegisterLinksMapping, null);
    }
    private boolean shouldRegisterLinksMapping(WebEndpointProperties webEndpointProperties, Environment environment, String basePath) {
        return webEndpointProperties.getDiscovery().isEnabled() && (StringUtils.hasText(basePath) || ManagementPortType.get(environment).equals(ManagementPortType.DIFFERENT));
    }

}

3.Swagger 拦截配置

package org.fh.config;
 
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
/**
 * 说明:Swagger 拦截配置
 * 作者:FH Admin
 * from fhadmin.org
 */
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
 
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.
                addResourceHandler("/swagger-ui/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/")
                .resourceChain(false);
    }
 
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/swagger-ui/")
                .setViewName("forward:/swagger-ui/index.html");
    }
}
 

4. 访问 127.0.0.1:8081/swagger-ui/index.html

5. 接口说明案例

处理类上加注解,比如
@Api("用户注册登录接口")
 
在方法上加注解,比如
@ApiOperation(value = "登录", notes="请求登录验证用户接口,校验登录是否成功")
@ApiImplicitParam(name = "KEYDATA", value = "用户名密码混淆码组合", paramType = "query", required = true, dataType = "String")

 

0
0
分享到:
评论

相关推荐

    Springboot2.7.0 + mybatis 搭建多数据源

    本教程将详细讲解如何使用Spring Boot 2.7.0和MyBatis框架搭建多数据源配置,以实现灵活的数据管理。 首先,我们需要了解Spring Boot的核心特性,它是一个基于Spring框架的微服务开发工具,简化了配置并提供了自动...

    基于Spring Cloud的权限管理系统【可做毕业设计、可做商用框架】

    - 基于 Spring Cloud 2021 、Spring Boot 2.7、 OAuth2 的 RBAC **权限管理系统** ...| Spring Cloud Alibaba | 2021.0.1.0 | | Spring Authorization Server | 0.3.0 | | Mybatis Plus | 3.5.2 | | hutool

    SpirngCloud Gateway整合Nacos

    使用SpringCloud Gateway整合Nacos,实现服务网关转发、配置中心、注册中心功能,使用技术版本信息为SpringCloud2021.0.3版本、nacos2.0.3版本、Springboot2.7.0版本,项目包含gateway网关服务和简单的product-...

    Keil.LPC1700_DFP.2.7.0.pack

    Keil.LPC1700_DFP.2.7.0

    kafka-2.12-2.7.0.tar

    kafka_2.12-2.7.0.tar kafka_2.12-2.7.0.tar kafka_2.12-2.7.0.tar kafka_2.12-2.7.0.tar kafka_2.12-2.7.0.tar kafka_2.12-2.7.0.tar kafka_2.12-2.7.0.tar kafka_2.12-2.7.0.tar kafka_2.12-2.7.0.tar kafka_2.12-...

    spring-boot-2.7.0.zip源码

    Spring Boot作为Java开发中的一个核心框架,以其便捷的起步配置、自动化配置和一站式的解决方案深受开发者喜爱。当我们深入研究Spring Boot 2.7.0的源码时,可以更深刻地理解其工作原理,提升我们的开发技能,并有助...

    SpringBoot整合整合Swagger 界面查看Restful API1

    在本文中,我们将深入探讨如何在SpringBoot项目中整合Swagger,以便通过可视化界面查看和测试RESTful API。Swagger是一款强大的工具,它可以帮助开发者轻松地创建、文档化和测试API。让我们一起看看如何将Swagger2...

    Address.Magic.Personal.Edition.v2.7.0.Build.314

    《Address.Magic.Personal.Edition.v2.7.0.Build.314》是一款专为Exchange 2000用户设计的实用工具,旨在帮助用户轻松导出全球通讯簿中的联系人信息。这款软件的主要功能是解决Exchange服务器上的全球通讯簿管理问题...

    springboot2.7.0集成rabbitmq使用消息中间件MQ.zip

    springboot2.7.0集成rabbitmq使用消息中间件MQ

    VisualSVN.Server.Enterprise.v2.7.0

    VisualSVN.Server.Enterprise.v2.7.0 此资源来自网络,仅用于测试了解,24小时内请自行删除。

    MicroOLAP.PostgresDAC.Business.license.v2.7.0.rar

    《MicroOLAP.PostgresDAC.Business.license.v2.7.0.rar》是一个针对Delphi开发者的软件组件包,主要用于提供对PostgreSQL数据库的高效访问。本文将深入探讨这个组件包的功能、用途及其在开发过程中的重要性。 ...

    Keil.LPC1800_DFP.2.7.0.pack

    Keil.LPC1800_DFP.2.7.0pack文件

    springboot+springcloud-eureka+springcloud-zuul

    springboot框架+springcloud-Eureka搭建+springcloud0-zuul搭建代码,可以帮助新手搭建,才用的是为服务架构,但只是把架子打起来了,没有过多逻辑代码,参考学习下,希望对你们有帮助

    jackson -core -2.7.0 .jar json jar包合集

    jackson -core -2.7.0 .jar json 内包含文件: jackson-core-2.7.0.jar jackson-core-2.7.0-sources.jar jackson-core-2.7.0-javadoc.jar

    cloudra ambari2.7.0 + hdp3.0.0.0网盘地址

    确定可用自行转存

    SpringBoot结合Swagger自动生成api文档.docx

    ### Spring Boot 结合 Swagger 自动生成 API 文档详解 #### 一、使用 IntelliJ IDEA 搭建 Spring Boot 工程 在正式介绍如何利用 Spring Boot 和 Swagger 来自动生成 API 文档之前,首先需要了解如何使用 IntelliJ ...

    springfox-swagger2-2.7.0-API文档-中文版.zip

    赠送jar包:springfox-swagger2-2.7.0.jar; 赠送原API文档:springfox-swagger2-2.7.0-javadoc.jar; 赠送源代码:springfox-swagger2-2.7.0-sources.jar; 赠送Maven依赖信息文件:springfox-swagger2-2.7.0.pom;...

    spring-boot-2.7.0.tar.gz源码

    源码阅读和学习Spring Boot 2.7.0的源码,可以帮助我们深入理解其内部工作原理,包括自动配置的实现、各种starter的构建以及框架如何与Spring生态系统整合。此外,源码中包含了详细的注释,有助于开发者更好地定制和...

    MateCloud是一款基于Spring Cloud Alibaba的微服务架构 支持多租户的低代码平台,Saas平台开发套件

    MateCloud是一款基于Spring Cloud Alibaba的微服务架构。目前已经整合Spring Cloud Gateway、Spring Security Oauth2、Feign、Dubbo、JetCache、RocketMQ等服务套件,支持多租户的低代码平台,Saas平台开发套件。...

    Keil.STM32F7xx-DFP.2.7.0

    接下来,通过选择“File”菜单,然后选择“Import”,用户可以选择已下载的Keil.STM32F7xx_DFP.2.7.0.pack文件进行安装。完成安装后,IDE将包含对STM32F7系列处理器的全面支持,包括HAL库、CMSIS库和其他必要的驱动...

Global site tag (gtag.js) - Google Analytics