当前位置:   article > 正文

SpringBoot整合Swagger2-knife4j_knife4j 2.0.7 swagger要什么版本

knife4j 2.0.7 swagger要什么版本

1.创建spring boot项目

1.1 创建项目默认都会

spring boot 版本:2.6.4
swagger 版本:2.0.7
  • 1
  • 2

1.2 在pom中添加依赖

<!-- 引入swagger -->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-spring-boot-starter</artifactId>
            <version>2.0.7</version>
        </dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

1.3 参考官网swagger

1.4 创建Swagger配置类

@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfiguration {

    @Bean(value = "defaultApi2")
    public Docket defaultApi2() {
        Docket docket=new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(new ApiInfoBuilder()
                        //.title("swagger-bootstrap-ui-demo RESTful APIs")
                        .description("# swagger-bootstrap-ui-demo RESTful APIs")
                        .termsOfServiceUrl("http://www.xx.com/")
                        .contact("xx@qq.com")
                        .version("1.0")
                        .build())
                //分组名称
                .groupName("2.X版本")
                .select()
                //这里指定Controller扫描包路径
                .apis(RequestHandlerSelectors.basePackage("com.github.xiaoymin.knife4j.controller"))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

官网并没有指明要指定静态文件地址 直接访问可能会报404错误

1.5 可以在启动类指定文件地址

@SpringBootApplication
public class DemoApplication  implements WebMvcConfigurer {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        // 解决swagger无法访问
        registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
        // 解决swagger的js文件无法访问
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

1.6 控制层添加注解

@Api(tags = "用户增删改查")
@RestController
@RequestMapping("userController")
public class UserController {
    /**
     * 使用线程安全的map存储user
     */
    static Map<Long, User> userMap= Collections.synchronizedMap(new HashMap<Long, User>());

    /**
     * 获取用户列表
     * @return
     */
    @ApiOperation(value = "用户列表")
    @GetMapping("/getUser")
    public List<User> getUserList(){
        return new ArrayList<>(userMap.values());
    }
    /**
     * 用户添加
     * @return
     */
    @ApiImplicitParam(dataTypeClass=User.class,required = true)
    @ApiOperation(value = "用户添加")
    @PostMapping("/addUser")
    public Object addUser(@RequestBody User user){
        userMap.put(user.getUserId().longValue(),user);
        return "用户添加成功";
    }
    /**
     * 用户修改
     * @return
     */
    @ApiOperation(value = "用户修改")
    @PutMapping("/updateUser")
    public Object updateUser(@RequestBody User user){
        User entity = userMap.get(user.getUserId().longValue());
        entity.setAge(user.getAge());
        entity.setUserName(user.getUserName());
        userMap.put(user.getUserId().longValue(),entity);
        return "更新成功";
    }
    /**
     * 删除用户
     * @return
     */
    @ApiOperation(value = "删除用户")
    @DeleteMapping("/deleteUser")
    public Object deleteUser(Long userId){
        userMap.remove(userId);
        return "删除成功";
    }
}
// 实体类
@Data
public class User {
    /**
     * 用户id
     */
    private Integer userId;
    /**
     *用户姓名
     */
    private String userName;
    /**
     * 用户年龄
     */
    private Integer age;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69

1.7 配置文件中设置服务端口 启动服务

server:
	port: 8081
  • 1
  • 2

1.8访问 http://localhost:8081/doc.html

1.9结果

描述

1.10 如果启动报

// 如果启动报这个错误 
Failed to start bean ‘documentationPluginsBootstrapper‘
  • 1
  • 2

那么在配置文件中添加

# 配置路径匹配策略
spring:
  mvc:
    pathmatch:
      matching-strategy: ANT_PATH_MATCHER
  • 1
  • 2
  • 3
  • 4
  • 5

1.11再次启动 大功告成

OK

启动报错原因可访问:处理documentationPluginsBootstrapper报错

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/656331
推荐阅读
相关标签
  

闽ICP备14008679号