


<dependency>
<groupId>io.springfoxgroupId>
<artifactId>springfox-boot-starterartifactId>
<version>3.0.0version>
dependency>



# SpringBoot2.6.x以上需要配置,springfox3.0.x以上需要配置
spring.mvc.pathmatch.matching-strategy=ant_path_matcher
package com.sgz.swagger.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.core.env.Profiles;
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;
/**
* 日期:2022/8/15 - 15:54
* 需求:配置Swagger
*/
@Configuration // 标识是一个配置页面
@EnableSwagger2 // 标识开启Swagger,会扫描当前所在包以及子包中所有的注解
public class SwaggerConfig {
/**
* 创建Docket类型的对象,并使用Spring容器bean管理,Docket是Swagger中的全局配置对象
* @return
*/
@Bean
public Docket docket(Environment environment) {
// API帮助文档的描述信息
ApiInfo apiInfo = new ApiInfoBuilder()
.contact(new Contact("我", "https://www.baidu.com", "xxxxxx@qq.com")) // 作者信息
.title("我的Swagger API开发文档") // 文档标题
.description("我的文档描述") // 文档描述
.version("1.1") // 版本号
.build(); // 构建
// 创建Docket类型的对象
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo) // API帮助文档的描述信息
.groupName("我") // 配置分组
.select() // 获取Docket中的选择器
.apis(RequestHandlerSelectors.basePackage("com.sgz.swagger.controller")) // 设置扫描包以及子包中的注解
.paths(PathSelectors.regex("/swagger/.*")) // 过滤路径,使用正则表达式约束生成API文档的路径地址
.build();
}
}
package com.sgz.swagger.pojo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* 日期:2022/8/15 - 17:40
* 需求:
*/
@ApiModel("用户实体类") // 描述实体类信息
public class User {
@ApiModelProperty("用户名") // 描述实体类属性名信息
private String username;
@ApiModelProperty("密码")
private String password;
}
package com.sgz.swagger.controller;
import com.sgz.swagger.pojo.User;
import io.swagger.annotations.*;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
/**
* 日期:2022/8/15 - 16:29
* 需求:
*/
@RestController
@RequestMapping("/swagger")
@Api(description = "增删改查API") // 描述类信息
public class MyController {
@GetMapping("/get")
@ApiOperation("用来获取用户名") // 描述方法信息
public String get(@ApiParam("用户名") String username) { // 描述参数信息
return "用户名:" + username;
}
@PostMapping("/post")
@ApiOperation("用来提交用户信息")
public User post(User user) {
return user;
}
@PutMapping("/put")
@ApiOperation("修改用户信息")
@ApiImplicitParams(value = {
@ApiImplicitParam(name = "username", value = "用户名"),
@ApiImplicitParam(name = "password", value = "密码")}) // 描述多个参数信息
public String put(String username, String password) {
return "用户名:"+username+",密码" +password+"修改成功";
}
@DeleteMapping("/delete")
@ApiOperation("删除用户")
@ApiImplicitParam(name = "id", value = "id号") // 描述参数信息
public String delete(Integer id) {
return id + "删除成功";
}
@ApiIgnore // 忽略该方法,也可以忽略类
@GetMapping("/h")
public String hl(){
return "被忽略的";
}
}
package com.sgz.swagger;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@SpringBootApplication
public class SwaggerMouldApplication {
public static void main(String[] args) {
SpringApplication.run(SwaggerMouldApplication.class, args);
}
}
