SpringBoot继承Swagger

1、依赖

注意:SpringBoot的要自己引用

	   <!--swagger-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <scope>provided </scope>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <scope>provided </scope>
        </dependency>

2、配置类

注意:照着改改就行,没什么操作性

package com.zhz.servicebase.config;

import com.google.common.base.Predicates;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * @author mac
 */
@Configuration//配置类
@EnableSwagger2//swagger注解
public class SwaggerConfig {
    @Bean
    public Docket webApiConfig(){
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("webApi")
                .apiInfo(webApiInfo())
                .select()
                .paths(Predicates.not(PathSelectors.regex("/error.*")))
                .build();
    }

    private ApiInfo webApiInfo() {
        return new ApiInfoBuilder()
                .title("网站-课程中心API文档")
                .description("描述课程中心微服务的接口文档")
                .version("1.0")
                .contact(new Contact("zhz","https://blog.csdn.net/zhouhengzhe?t=1","1871229316@qq.com"))
                .build();
    }

}

接下来在SpringBoot的启动类上加@ComponentScan(basePackages = {“配置类的包路径”})

3、注解引用

3.1、Api

@Api 是类上注解。控制整个类生成接口信息的内容。 
	tags:类的名称。可以有多个值,多个值表示多个副本。 
	description:描述,已过时
@RestController
@RequestMapping("/people")
@Api(tags = {"mydemo"},description = "描述") public class DemoController {
}

3.2、ApiOperation

@ApiOperation 写在方法上,对方法进行总体描述 
	value:接口描述
	notes:提示信息
@ApiOperation(value="接口描述",notes = "接口提示信息")

3.3、ApiParam

@ApiParam 写在方法参数前面。用于对参数进行描述或说明是否为必添项等说明。
	name:参数名称 
	value:参数描述 
	required:是否是必须
public People getPeople(Integer id, @ApiParam(value="姓名",required = true) String name, String address)

3.4、ApiModel(一般用在实体类上)

@ApiModel 是类上注解,主要应用 Model,也就是说这个注解一 般都是写在实体类上。
	value:名称
	description:描述

@ApiModel(value = "人类",description = "描述") public class People {}

3.5、ApiModelProperty(一般用在实体类的属性上)

@ApiModelProperty 可以用在方法或属性上。用于当对象作为参数时定义这个字段的内容。
	value:描述 
	name:重写属性名 
	required:是否是必须的 
	example:示例内容 
	hidden:是否隐藏。
@ApiModelProperty(value = "姓名",name = "name",required = true,example = "张三 ")
private String name;

3.6、ApiIgnore

@ApiIgnore 用于方法或类或参数上,表示这个方法或类被忽略。 和之前讲解的自定义注解@NotIncludeSwagger 效果类似。只是这个注 解是Swagger内置的注解,而@NotIncludeSwagger是我们自定义的注 解。

3.7、ApiImplicitParam

@ApiImplicitParam用在方法上,表示单独的请求参数,总体功能 和@ApiParam 类似。
	name:属性名 
	value:描述 
	required:是否是必须的 
	paramType:属性类型 
	dataType:数据类型
@PostMapping("/getPeople")
@ApiImplicitParam(name = "address",value = "地址",required = true,paramType = "query",dataType = "string")
public People getPeople(Integer id, @ApiParam(value="姓名",required = true) String name, String address){

下面是本人的公众号:(有兴趣可以扫一下,文章会同步过去)
在这里插入图片描述

我是小白弟弟,一个在互联网行业的小白,立志成为一名架构师
https://blog.csdn.net/zhouhengzhe?t=1

<think>好的,用户想在Spring Boot 3中集成Swagger。之前了解过Spring Boot 2的时候用的是springfox,但现在Spring Boot 3可能不兼容了。记得系统指令里提到过springdoc-openapi是替代方案。需要确认一下引用的资料。 根据引用[1],Spring Boot 3推荐使用springdoc-openapi,因为springfox已经不更新了。所以第一步应该是添加相关依赖。引用[3]提到要使用Knife4j作为UI,可能用户需要更友好的界面。但基础集成的话,springdoc-openapi自带的UI应该够用了,不过也可以考虑Knife4j的选项。 接下来步骤应该是添加依赖,比如springdoc-openapi-starter-webmvc-ui。然后在配置类里启用Swagger,可能需要一个@Configuration类,并定义OpenAPI的Bean。引用[2]提到访问路径是/swagger-ui/index.html,而引用[3]的Knife4j可能有不同的路径,比如/doc.html。 然后配置基本信息,比如标题、版本、描述这些。用户可能需要自定义这些信息,所以代码示例里应该包含如何设置OpenAPI Bean的属性。还要注意Spring Boot 3是否对路径有新的要求,比如Servlet路径或者上下文路径的影响。 测试部分,启动应用后访问指定URL,用户需要确认是否成功。如果有问题,可能涉及依赖冲突或者配置错误。比如检查依赖是否正确,版本是否兼容。另外,如果用了Spring Security,可能需要放行相关路径。 可能用户还会遇到分组配置,或者如何过滤某些接口的问题,这些可以通过Docket(在springfox中)来配置,但在springdoc中可能用GroupedOpenApi。不过根据引用[1],应该用springdoc的方式,比如GroupedOpenApi.builder().group("group1")...。 总结步骤:添加依赖、配置类定义OpenAPI Bean、访问测试。可能需要提到Knife4j作为增强UI的可选步骤,根据引用[3],添加Knife4j的依赖并修改访问路径。不过用户的问题主要是集成和配置,所以核心步骤是springdoc-openapi的集成,Knife4j作为可选扩展。 最后生成相关问题,可能涉及性能优化、配置细节、与其他工具整合等,需要参考之前的引用内容来设计。</think>在Spring Boot 3中集成Swagger的步骤如下: ### 1. 添加依赖 由于`springfox`不再支持Spring Boot 3,需使用`springdoc-openapi`库。在`pom.xml`中添加: ```xml <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>2.2.0</version> </dependency> ``` 若需Knife4j增强UI,可额外添加: ```xml <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId> <version>4.3.0</version> </dependency> ``` ### 2. 配置Swagger 创建配置类`SwaggerConfig.java`: ```java @Configuration public class SwaggerConfig { @Bean public OpenAPI springShopOpenAPI() { return new OpenAPI() .info(new Info() .title("API文档") .description("Spring Boot 3集成Swagger示例") .version("1.0")) .externalDocs(new ExternalDocumentation() .description("参考文档")); } } ``` ### 3. 访问Swagger UI - **默认UI**:启动应用后访问`http://localhost:8080/swagger-ui/index.html` - **Knife4j UI**:若集成了Knife4j,访问`http://localhost:8080/doc.html`[^3] ### 4. 高级配置(可选) - **分组API**:使用`GroupedOpenApi`实现多版本接口分组 - **安全配置**:若集成Spring Security,需放行以下路径: ```java http.authorizeRequests() .antMatchers("/swagger-ui/**", "/v3/api-docs/**").permitAll(); ``` ### 常见问题排查 1. 页面404:检查依赖版本是否兼容Spring Boot 3 2. 接口未显示:确保Controller类标注了`@RestController`或`@RequestMapping` 3. 配置无效:确认配置类位于主启动类同级或子包中
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhz小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值