Spring Boot配置Swagger
1、导入相关依赖
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.7.0</version> </dependency>
2、添加配置类(其中的package需要找到自己的controller)
package com.example.redis.config; 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.builders.RequestHandlerSelectors; 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; @Configuration @EnableSwagger2 public class SwaggerConfig { /** * 创建API应用 * apiInfo() 增加API相关信息 * 通过select()函数返回一个ApiSelectorBuilder实例,用来控制哪些接口暴露给Swagger来展现, * 本例采用指定扫描的包路径来定义指定要建立API的目录。 * * @return */ @Bean public Docket restApi() { return new Docket(DocumentationType.SWAGGER_2) .groupName("标准接口") //.apiInfo(apiInfo("Spring Boot中使用Swagger2构建RESTful APIs", "1.0")) .useDefaultResponseMessages(true) .forCodeGeneration(false) .select() .apis(RequestHandlerSelectors.basePackage("com.example.redis.controller")) .paths(PathSelectors.any()) .build(); } /** * 创建该API的基本信息(这些基本信息会展现在文档页面中) * 访问地址:http://ip:port/swagger-ui.html * * @return /* *//* 与上面注释.apiInfo相关,可以添加相关描述信息 private ApiInfo apiInfo(String title, String version) { return new ApiInfoBuilder() .title(title) .description("") .termsOfServiceUrl("") .contact(new Contact("")) .version(version) .build(); }*/ }
3、编写controller
注意添加注解
@RequestMapping(“/api2”)
@Api(tags = “标准演示接口2”)
package com.example.redis.controller; import com.example.redis.pojo.User; import com.example.redis.service.UserService; import io.swagger.annotations.Api; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; /** * @ClassName: UserController * @author: 鹏 * @date: 2022/8/26 9:41 */ @Controller @RequestMapping("/api2") @Api(tags = "标准演示接口2") public class UserController { @Autowired private UserService userService; @ResponseBody @PostMapping("/insert") public String addUser(User user){ boolean b = userService.addUser(user); if (b){ return "ok"; }else { return "error"; } } }
4、访问网址(http://ip:port/swagger-ui.html)
5、可能遇到的问题
1.yml文件缺少配置(与版本不对应有关)
找到yml文件配置如下
spring: mvc: pathmatch: matching-strategy: ant_path_matcher
重启解决
2.关于默认的这个url很丑想自定义
在yml文件配置
springfox: documentation: swagger: v2: path: /my/docs
重启发现更改完成