Springboot 集成swagger2 - 2020 - idea

Springboot 集成swagger2

1.创建boot项目

2.导入依赖 pom

        <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>

3.添加配置类

@Configuration
@EnableSwagger2  // 开启swagger2
public class SwaggerConfig {

}

此时访问页面测试一下http://localhost:8080/swagger-ui.html,就可以看到下面得样子
在这里插入图片描述

4.配置swagger得基本信息,在SwaggerConfig 中添加bean

    // 配置Swagger得 Docket bean实例
    @Bean
    public Docket docket() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo());
    }

    //配置swagger信息
    private ApiInfo apiInfo() {
        return new ApiInfo(
                "Sagger 练习 title",
                "这是描述",
                "版本号:1.0",
                "url => localhost:8080/",
                new Contact("草莓sir", "", ""), // 作者信息
                "Apache 2.0",
                "http://www.apache.org/licenses/LICENSE-2.0",
                new ArrayList()
        );
    }

重启项目会看到如下
在这里插入图片描述

5. swagger配置扫描接口 修改配置类

Docket.select()

    // 配置Swagger得 Docket bean实例
    @Bean
    public Docket docket() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                // 配置扫描接口的方式
                //basePackage 扫描包
                // any  扫描所有
                // withClassAnnotation 扫描类上的注解,参数是一个注解得反射对象
                // withMethodAnnotation 扫描方法上得注解
                .apis(RequestHandlerSelectors.basePackage("com.swagger.swagger.controller"))
                //paths 过滤什么路径下得
//                .paths(PathSelectors.ant("/com.*"))
                .build();
    }

在这里插入图片描述

6.配置是否启动swagger

Docket.enable()

  // 配置Swagger得 Docket bean实例
    @Bean
    public Docket docket() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                // 配置是否启动 swagger
                .enable(false)
                .select()
                // 配置扫描接口的方式
                //basePackage 扫描包
                // any  扫描所有
                // withClassAnnotation 扫描类上的注解,参数是一个注解得反射对象
                // withMethodAnnotation 扫描方法上得注解
                .apis(RequestHandlerSelectors.basePackage("com.swagger.swagger.controller"))
                //paths 过滤什么路径下得
//                .paths(PathSelectors.ant("/com.*"))
                .build();
    }

禁用!
在这里插入图片描述

配置swagger 在生产环境下使用

    @Bean
    public Docket docket(Environment environment) {
        // 获取项目环境
        Profiles profiles = Profiles.of("dev");
        // 判断是否存在
        boolean isEnable = environment.acceptsProfiles(profiles);
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                // 配置是否启动 swagger
                .enable(isEnable)
                .select()
                // 配置扫描接口的方式
                //basePackage 扫描包
                // any  扫描所有
                // withClassAnnotation 扫描类上的注解,参数是一个注解得反射对象
                // withMethodAnnotation 扫描方法上得注解
                .apis(RequestHandlerSelectors.basePackage("com.swagger.swagger.controller"))
                //paths 过滤什么路径下得
//                .paths(PathSelectors.ant("/com.*"))
                .build();
    }

配置文档分组

Docket.groupName()

 @Bean
    public Docket docket(Environment environment) {
        // 获取项目环境
        Profiles profiles = Profiles.of("dev");
        // 判断是否存在
        boolean isEnable = environment.acceptsProfiles(profiles);
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .groupName("分组1")
                // 配置是否启动 swagger
                .enable(isEnable)
                .select()
                // 配置扫描接口的方式
                //basePackage 扫描包
                // any  扫描所有
                // withClassAnnotation 扫描类上的注解,参数是一个注解得反射对象
                // withMethodAnnotation 扫描方法上得注解
                .apis(RequestHandlerSelectors.basePackage("com.swagger.swagger.controller"))
                //paths 过滤什么路径下得
//                .paths(PathSelectors.ant("/com.*"))
                .build();
    }

在这里插入图片描述

配置多个分组

使用多个Docket 示例

 @Bean
    public Docket docket1(Environment environment) {
        return new Docket(DocumentationType.SWAGGER_2).groupName("分组2");
    }
    // 配置Swagger得 Docket bean实例
    @Bean
    public Docket docket(Environment environment) {
        // 获取项目环境
        Profiles profiles = Profiles.of("dev");
        // 判断是否存在
        boolean isEnable = environment.acceptsProfiles(profiles);
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                // 配置分组
                .groupName("分组1")
                // 配置是否启动 swagger
                .enable(isEnable)
                .select()
                // 配置扫描接口的方式
                //basePackage 扫描包
                // any  扫描所有
                // withClassAnnotation 扫描类上的注解,参数是一个注解得反射对象
                // withMethodAnnotation 扫描方法上得注解
                .apis(RequestHandlerSelectors.basePackage("com.swagger.swagger.controller"))
                //paths 过滤什么路径下得
//                .paths(PathSelectors.ant("/com.*"))
                .build();
    }

在这里插入图片描述

简单集成项目demo

Gitee

https://gitee.com/shixiaodong2015/swagger-demo

猜你喜欢

转载自blog.csdn.net/weixin_43141746/article/details/106567835
今日推荐