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")
相关推荐
本教程将详细讲解如何使用Spring Boot 2.7.0和MyBatis框架搭建多数据源配置,以实现灵活的数据管理。 首先,我们需要了解Spring Boot的核心特性,它是一个基于Spring框架的微服务开发工具,简化了配置并提供了自动...
- 基于 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
使用SpringCloud Gateway整合Nacos,实现服务网关转发、配置中心、注册中心功能,使用技术版本信息为SpringCloud2021.0.3版本、nacos2.0.3版本、Springboot2.7.0版本,项目包含gateway网关服务和简单的product-...
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-...
Spring Boot作为Java开发中的一个核心框架,以其便捷的起步配置、自动化配置和一站式的解决方案深受开发者喜爱。当我们深入研究Spring Boot 2.7.0的源码时,可以更深刻地理解其工作原理,提升我们的开发技能,并有助...
在本文中,我们将深入探讨如何在SpringBoot项目中整合Swagger,以便通过可视化界面查看和测试RESTful API。Swagger是一款强大的工具,它可以帮助开发者轻松地创建、文档化和测试API。让我们一起看看如何将Swagger2...
《Address.Magic.Personal.Edition.v2.7.0.Build.314》是一款专为Exchange 2000用户设计的实用工具,旨在帮助用户轻松导出全球通讯簿中的联系人信息。这款软件的主要功能是解决Exchange服务器上的全球通讯簿管理问题...
springboot2.7.0集成rabbitmq使用消息中间件MQ
VisualSVN.Server.Enterprise.v2.7.0 此资源来自网络,仅用于测试了解,24小时内请自行删除。
《MicroOLAP.PostgresDAC.Business.license.v2.7.0.rar》是一个针对Delphi开发者的软件组件包,主要用于提供对PostgreSQL数据库的高效访问。本文将深入探讨这个组件包的功能、用途及其在开发过程中的重要性。 ...
Keil.LPC1800_DFP.2.7.0pack文件
springboot框架+springcloud-Eureka搭建+springcloud0-zuul搭建代码,可以帮助新手搭建,才用的是为服务架构,但只是把架子打起来了,没有过多逻辑代码,参考学习下,希望对你们有帮助
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
确定可用自行转存
### Spring Boot 结合 Swagger 自动生成 API 文档详解 #### 一、使用 IntelliJ IDEA 搭建 Spring Boot 工程 在正式介绍如何利用 Spring Boot 和 Swagger 来自动生成 API 文档之前,首先需要了解如何使用 IntelliJ ...
赠送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的源码,可以帮助我们深入理解其内部工作原理,包括自动配置的实现、各种starter的构建以及框架如何与Spring生态系统整合。此外,源码中包含了详细的注释,有助于开发者更好地定制和...
MateCloud是一款基于Spring Cloud Alibaba的微服务架构。目前已经整合Spring Cloud Gateway、Spring Security Oauth2、Feign、Dubbo、JetCache、RocketMQ等服务套件,支持多租户的低代码平台,Saas平台开发套件。...
接下来,通过选择“File”菜单,然后选择“Import”,用户可以选择已下载的Keil.STM32F7xx_DFP.2.7.0.pack文件进行安装。完成安装后,IDE将包含对STM32F7系列处理器的全面支持,包括HAL库、CMSIS库和其他必要的驱动...