IDEA+SpringBoot整合Swagger详解

环境搭建–源码在文章结尾

转载自:紫檀添香

转载链接:https://blog.csdn.net/HQJ520/article/details/104608337/

  • 创建SpringBoot项目
    在这里插入图片描述
    2.选择快捷方式创建springboot项目在这里插入图片描述
    3.给项目命名在这里插入图片描述
    4.选择依赖模块在这里插入图片描述
    5.pom.xml中导入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>

 
 

6.配置Swagger信息
在这里插入图片描述

  • 配置类添加一个方法来设置配置信息
    在这里插入图片描述
  • 配置端口和访问地址:http://localhost:8082/swagger-ui.html
    在这里插入图片描述
  • 访问结果
    在这里插入图片描述
    7.配置controller包扫描
    在这里插入图片描述
  • controller添加如下方法
    在这里插入图片描述
  • 测试效果
    在这里插入图片描述
    9.配置分组–配置类中添加如下配置
    在这里插入图片描述
    10.多环境设置是否启用Swagger
    在这里插入图片描述
    11.配置API注释
  • 实体类注释
    在这里插入图片描述
    -.给控制层加注释
    在这里插入图片描述
    12.具体代码
    User类
package com.example.swagger2.pojo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
 * @author yd
 * @version 1.0
 * @date 2020/3/2 0002 黄啟军
 */
@ApiModel("给API加注释")
public class User {
    //字段注释
    @ApiModelProperty("用户名")
    private String name;
    @ApiModelProperty("用户年龄")
    private Integer age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
}

  
  

-controller控制层

@RestController
public class Hello {
    @ResponseBody
    @GetMapping("/hello")
    public String hello(){
        return "测试成功";
    }
    /**只要我们的接口中,返回值存在实体类,他就会被扫描到Swagger中*/
    @PostMapping("/user")
    public User test(String username){
        return new User();
    }
    @ApiOperation("登录控制方法")
    @PostMapping("/hello2")
    public String hello2(@ApiParam("用户名") String username){
        return "hello"+username;
    }
}

  
  

-配置类SwaggerConfig

package com.example.swagger2.controller.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.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.service.VendorExtension;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.ArrayList;
/**
 * @author yd
 * @version 1.0
 * @date 2020/3/1 0001 黄啟军
 */
@Configuration
@EnableSwagger2 //开启wagger2
public class SwaggerConfig {
    /**设置多个分组*/
    @Bean
    public Docket docket1(){
        return new Docket(DocumentationType.SWAGGER_2).groupName("A");
    }
    @Bean
    public Docket docket2(){
        return new Docket(DocumentationType.SWAGGER_2).groupName("B");
    }
    @Bean
    public Docket docket3(){
        return new Docket(DocumentationType.SWAGGER_2).groupName("C");
    }
        /**配置了swagger的Docket的bean实例*/
        @Bean
        public Docket docket(Environment environment){
            //设置要显示的Swagger环境
            Profiles profiles = Profiles.of("dev", "test");
            //获取项目的环境,判断是否处在自己设定的环境当中,如果有上述环境就返回true
            boolean profiles1 = environment.acceptsProfiles(profiles);
            System.out.println(profiles1);
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    //分组
                    .groupName("黄")
                    //是否启用Swagger,false是不启用,默认是true
                    .enable(profiles1)
                    .select()
                    //RequestHandlerSelectors:配置要扫描接口的方式
                    //basePackage:指定要扫描的包
                    //any:表示扫描全部
                    //none:都不扫描
                    //withClassAnnotation:扫描类上的注解,参数是一个注解的反射对象
                    //withMethodAnnotation:扫描方法上的注解
                    .apis(RequestHandlerSelectors.basePackage("com.example.swagger2.controller"))
                    //paths():过滤扫描路径--表示只扫描如下路径的内容
                    //.paths(PathSelectors.ant("com.example.swagger2/**"))
                    .build();
        }
        /**配置Swagger信息:apiInfo*/
        private ApiInfo apiInfo(){
            //作者信息
            Contact contact = new Contact("黄", "", "2695818931@qq.com");
            return new ApiInfo(
                    "Swagger练习",//标题
                    "常用操作的练习",//描述
                    "1.0",//版本
                    "urn:tos",
                     contact,//联系人
                    "Apache 2.0",//许可
                    "http://www.apache.org/licenses/LICENSE-2.0",//许可地址
                    new ArrayList<VendorExtension>());
        }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值