springboot整合swagger2

springboot集成swagger2

第一步:导入依赖


<dependencies>
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-web</artifactId>
       </dependency>

       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-test</artifactId>
           <scope>test</scope>
       </dependency>
       <!-- swagger RESTful API -->
       <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>

       <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
       <dependency>
           <groupId>org.projectlombok</groupId>
           <artifactId>lombok</artifactId>
           <version>1.18.14</version>
           <scope>provided</scope>
       </dependency>

第二步:创建一个SwaggerConfig配置类


/**
* @author 杨明书
* @EnableSwagger2 开启swagger2
* @Date 2021/09/01 16:25
*/

@Configuration
@EnableSwagger2
public class SwaggerConfig {

 /**
    * 配置多个分组
    */

 @Bean
 public Docket docket1(){
   return   new Docket(DocumentationType.SWAGGER_2).groupName("张三");
}

 @Bean
 public Docket docket2(){
   return   new Docket(DocumentationType.SWAGGER_2).groupName("李白");
}

 @Bean
 public Docket docket3(){
   return   new Docket(DocumentationType.SWAGGER_2).groupName("王舞");
}

 @Bean
 public Docket docket(Environment environment){
   //设置需要显示的swagger环境
   Profiles profiles=Profiles.of("dev","prod");
   //获取项目环境 ,判断是否存在自己需要的环境
   boolean flag = environment.acceptsProfiles(profiles);
   return new Docket(DocumentationType.SWAGGER_2)
    .apiInfo(apiInfo())
    .groupName("杨明书")
     //😱 Could not render e, see the console. (.enable(false)是否启动swagger)
     //.enable(flag)
    .select()
     //指定要扫描的包
     //.any()扫描全部
     //none()不扫描
     //basePackage("com.example.swagger.controller")
     //withClassAnnotation 类
     //withMethodAnnotation 方法
     //withMethodAnnotation(RestController.class)
    .apis(RequestHandlerSelectors.basePackage("com.example.swagger.controller"))
     //过滤
     //any()全部
     //ant("/yms/**")
    .paths(PathSelectors.any())
    .build();//创建
}
 /**
    * 配置swagger信息
    */

 private ApiInfo apiInfo(){
   //作者信息
   Contact DEFAULT_CONTACT = new Contact("yms","https://www.cnblogs.com","2243799073@qq.com");
   return new ApiInfo(
     "springboot集成swagger2",
     "即使再小的帆也能远航",
     "v1.0",
     "https://www.cnblogs.com",
     DEFAULT_CONTACT,
     "Apache 2.0",
     "http://www.apache.org/licenses/LICENSE-2.0",
     new ArrayList());
};
}

相关的API使用

/**
  * @ApiModel("用户实体类")
  * @author 杨明书
  * @Date 2021/09/01 18:01
  */

@ApiModel("用户实体类")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {

 @ApiModelProperty("用户名")
 private String username;
 @ApiModelProperty("秘密")
 private String password;
}



/**
* @author 杨明书
* @Date 2021/09/01 16:51
*/
@Api("类说明")
@RestController
public class SwaggerController {

   @GetMapping(value = "/hello")
   public String hello(){
       return "swagger";
  }

   /**
    * 只要我们的接口中,返回值中存在扫描的swagger2中
    * @return
    */
   @PostMapping(value = "/user")
   public User user(){
       return new User();
  }


   @ApiOperation("swagger控制类")
   @GetMapping(value = "/swagger")
   public  String swagger(@ApiParam("注释用户名") String username){
       return "hello"+username;
  }
}

注意的点:发布项目时,关闭swagger2

posted @ 2021-09-01 18:46  এএ᭄念卿এএ᭄  阅读(315)  评论(0编辑  收藏  举报