spring boot 使用 knife4j,对 springfox 的 swagger 页面进行美化的 demo 示例

1. 描述

一个springboot项目集成 springfox 3.0,使用 knife4j 对 swagger 的 API 接口页面进行美化管理的 demo示例。
提示:knife4j 3.X 和2.X的配置注解使用上有些区别。

环境:

IDE(idea)2021.3
JDK:1.8
maven:3.8.4
spring boot:2.5.6
springfox:3.0.0
knife4j:3.0.3

2. 结果

  • 页面访问:http://localhost:8880/demo/doc.html
    在这里插入图片描述

3. demo

3.0 项目结构
在这里插入图片描述

3.1 pom.xml

  • 引入 knife4j jar包(knife4j中已经引用了springfox)
<dependencies>
        <!--提供全栈的 web 开发特性,包括 Spring MVC 依赖和 Tomcat 容器-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--提供好看的swagger界面,Knife4j里面集成了swagger的jar包 -->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-spring-boot-starter</artifactId>
        </dependency>
        <!-- lombok工具类(编译注解) -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
    </dependencies>

3.2 SpringBootApplication 注解实现启动类

@SpringBootApplication
public class DemoSwaggerKnife4jApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoSwaggerKnife4jApplication.class, args);
        System.out.println("----- http://localhost:8880/demo/ -----");
        System.out.println("----- http://localhost:8880/demo/doc.html -----");
    }
}

3.3 application.yml配置

server:
  port: 8880
  servlet:
    context-path: /demo

3.4 其他代码

  • Swagger3Config.java
@Configuration
@EnableOpenApi // swagger版本2用的 @EnableSwagger2
public class Swagger3Config {

    @Bean
    public Docket defaultApi() {
        return new Docket(DocumentationType.OAS_30)
                .groupName("default-api")
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.demo.swagger.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        String swaggerUrl = "http://localhost:8880/demo/doc.html";
        return new ApiInfoBuilder()
                .title("Swagger UI API")
                .description("Swagger UI API 的一个demo示例")
                .termsOfServiceUrl("http://localhost:8880/demo")
                .contact(new Contact("byrc", swaggerUrl, "best54288@163.com"))
                .license("Apache License Version 2.0")
                .licenseUrl("https://github.com/springfox/springfox/blob/master/LICENSE")
                .version("1.0.0")
                .build();
    }
  • UserController .java
@Slf4j
@RestController
@RequestMapping("/user")
@Api(tags = "用户管理")
public class UserController {

    @GetMapping("/{id}")
    @ApiOperation(value = "主键查询", notes = "通过主键查询用户")
    public JsonResponse<User> get(@PathVariable @ApiParam("用户id") Integer id) {
        return JsonResponse.ok(new User(id, "白玉京", 23));
    }

    @DeleteMapping("/{id}")
    @ApiOperation(value = "删除用户", notes = "通过主键删除用户")
    public JsonResponse<String> delete(@PathVariable Integer id) {
        log.info("删除用户 {}", id);
        return JsonResponse.ok();
    }

    @PostMapping
    @ApiOperation(value = "添加用户")
    public JsonResponse<User> post(@RequestBody User user) {
        return JsonResponse.ok(user);
    }
}

4. 资料

5. 注

  • spirng boot 已在父项目引入(父项目pom.xml配置);
  • 部分jar包版本已在父项目管理(如果对应不上,一定、肯定、决定是某些修改,没同步更新文档)。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值