springboot集成Swagger2

  1. 首先导入依赖

    <!--swagger-->
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
      <version>2.9.2</version>
    </dependency>
    <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger-ui</artifactId>
      <version>2.9.2</version>
    </dependency>
  1. 然后配置swagger

@Configuration
public class SwaggerConfiguration {

    /**
     * 创建Docket类型的对象。并使用sping容器管理。
     * Docket是Swagger中的全局配置对象
     * @return
     */
    @Bean
    public Docket docket(){
        Docket docket = new Docket(DocumentationType.SWAGGER_2);

        //API帮助文档的描述信息。Information
        ApiInfo apiInfo = new ApiInfoBuilder().contact(//配置swagger文档主体内容
                new Contact(
                        "lingxiSwagger开发文档",    // 是文档的发布者名称
                        "http://www.bomber.ltd",    // 是文档发布者的网站地址
                        "412642208@qq.com"         // 文档发布者的电子邮箱
                ))
                .title("Swagger框架学习帮助文档")
                .description("Swagger框架学习帮助文档详细描述-Swagger框架是一个用于开发RestAPI帮助文档的框架")
                .version("1.1")
                .build();

        // 给docket上下文配置api描述信息
        docket.apiInfo(apiInfo);

        docket
                .select()      // 获取Docket中的选择器,返回ApiSelectorBuilder。构建选择器的。如:扫描什么包的注解
                .apis(
                        Predicates.not(//取反。false -> true  true -> false
                        RequestHandlerSelectors.withClassAnnotation(    // 当方法上有注解的时候返回true
                                MyAnnotationSwagger.class)  // 方法上有什么注解的时候返回true
                        )
                    )
                .apis(RequestHandlerSelectors.basePackage("com.lingxi.swagger.controller"))    // 设定扫描哪个包(包含子包)的注解
                .paths(
                        Predicates.or(
                                PathSelectors.regex("/swagger/.*"), // 使用正则表达式,约束生成AIP文档的路径地址
                                PathSelectors.regex("/.*")
                        )
                )
                .build();   // 重新构建Docket对象
        return docket;
    }
}
  1. springboot启动类

/**
 * EnableSwagger2 是springfox提供的一个注解,代表swagger2相关技术开启。
 * 会扫描当前类所在包,及子包中所有的类型中的注解。做swagger文档的定值
 */

@SpringBootApplication
@EnableSwagger2
public class SwaggerApplication {

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

}
  1. 控制层

/**
 * @Api - 描述当前类型生成帮助文档的信息
 * 属性 -
 *  - tags : 给当前类型定义别名,可以有多个。定义几个比欸的那个,在ui视图就显示几个控制器访问菜单
 *  - description : 给当前类型生成的帮助文档定义一个描述信息
 */

@RestController
@RequestMapping(value = "/swagger")
@Api(tags = "MyController",description = "描述")
public class SwaggerController {

    @RequestMapping("/testEntity")
    public MyEntity testEntity(){
        return new MyEntity();
    }

    @GetMapping("/test")
//    @ApiImplicitParam(name = "m" , value = "m参数描述", required = false, paramType = "字符串" , dataType = "名值对")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "m" , value = "m参数描述", required = false, paramType = "字符串" , dataType = "名值对"),
            @ApiImplicitParam(name = "n" , value = "n参数描述", required = false, paramType = "字符串" , dataType = "名值对")
    })
    public String test(String m , String n){
        return "test";
    }

    // - 忽略,当前注解描述的方法或类型,不生成api帮助文档
    @ApiIgnore
    @MyAnnotationSwagger
    @RequestMapping("/user")
    public String user(){
        return "zhangsan";
    }

    @PostMapping("/userPost")
    @ApiOperation(value = "post方法,执行数据新增操作",notes = "Swagger学习使用-处理POST请求的方法")
    public String userPost(
            @ApiParam(name = "用户名(user)" , value = "新增用户是提供的用户名" , required = true) String user){
        return "post" + user;
    }

}
  1. 实例类

@ApiModel(value = "自定义实体-MyEntity" , description = "MyEntity存储用户数据")
@Data
public class MyEntity implements Serializable {

    @ApiModelProperty(value = "主键" , name = "主键(id)",required = false , example = "1" , hidden = false)
    private Integer id;
    @ApiModelProperty(value = "姓名" , name = "姓名(name)",required = false , example = "张三" , hidden = false)
    private String name;
    @ApiModelProperty(value = "密码" , name = "密码(password)",required = false , example = "123456" , hidden = false)
    private String password;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值