springboot配置swagger2

Posted xuyatao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot配置swagger2相关的知识,希望对你有一定的参考价值。

、在pom.xml里添加jar包:

  1. <dependency>  
  2.             <groupId>io.springfox</groupId>  
  3.             <artifactId>springfox-swagger-ui</artifactId>  
  4.             <version>${springfox.version}</version>  
  5.         </dependency>  
  6.         <dependency>  
  7.             <groupId>io.springfox</groupId>  
  8.             <artifactId>springfox-swagger2</artifactId>  
  9.             <version>${springfox.version}</version>  
  10.         </dependency>  


   在pom.xml里的properties里添加版本


  1. <properties>  
  2.     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
  3.     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>  
  4.     <java.version>1.8</java.version>  
  5.     <springfox.version>2.5.0</springfox.version>  
  6. </properties>  


2、在com/demo下创建swagger文件夹,创建SwaggerConfig文件

  1. package com.demo.swagger;  
  2.   
  3. import org.springframework.context.annotation.Bean;  
  4. import org.springframework.context.annotation.Configuration;  
  5. import springfox.documentation.builders.ApiInfoBuilder;  
  6. import springfox.documentation.builders.PathSelectors;  
  7. import springfox.documentation.builders.RequestHandlerSelectors;  
  8. import springfox.documentation.service.ApiInfo;  
  9. import springfox.documentation.spi.DocumentationType;  
  10. import springfox.documentation.spring.web.plugins.Docket;  
  11. import springfox.documentation.swagger2.annotations.EnableSwagger2;  
  12.   
  13. /** 
  14.  * Created by huguoju on 2016/12/29. 
  15.  */  
  16. @Configuration  
  17. @EnableSwagger2  
  18. public class SwaggerConfig {  
  19.     /** 
  20.      * 可以定义多个组,比如本类中定义把test和demo区分开了 (访问页面就可以看到效果了) 
  21.      * 
  22.      */  
  23.     @Bean  
  24.     public Docket testApi() {  
  25.         return new Docket(DocumentationType.SWAGGER_2)  
  26.                 .apiInfo(apiInfo())  
  27.                 .select()  
  28.                 .apis(RequestHandlerSelectors.basePackage("com.demo"))  
  29.                 .paths(PathSelectors.any()).build();  
  30.     }  
  31.   
  32.     private ApiInfo apiInfo() {  
  33.         return new ApiInfoBuilder()  
  34.                 .title("Spring Boot中使用Swagger2构建RESTful APIs")  
  35.                 .description("spring Boot 中构建RESTful API")  
  36.                 .termsOfServiceUrl("")  
  37.                 .contact("huguoju")  
  38.                 .version("1.0")  
  39.                 .build();  
  40.     }  
  41. }  


以上就完成了,在页面访问localhost:8080/swagger-ui.html,就看见了,下面主要说说怎么用


1、在com/dem/controller下创建TestController,


  1. package com.demo.controller;  
  2.   
  3. import com.demo.model.User;  
  4. import com.demo.service.TestService;  
  5. import io.swagger.annotations.Api;  
  6. import io.swagger.annotations.ApiOperation;  
  7. import io.swagger.annotations.ApiParam;  
  8. import org.springframework.beans.factory.annotation.Autowired;  
  9. import org.springframework.http.MediaType;  
  10. import org.springframework.stereotype.Controller;  
  11. import org.springframework.web.bind.annotation.RequestMapping;  
  12. import org.springframework.web.bind.annotation.RequestMethod;  
  13. import org.springframework.web.bind.annotation.RequestParam;  
  14.   
  15. /** 
  16.  * Created by huguoju on 2016/12/28. 
  17.  */  
  18. @Controller  
  19. @RequestMapping("test")  
  20. @Api(value = "测试类",tags = "测试接口")  
  21. public class TestController {  
  22.     @Autowired  
  23.     private TestService testService;  
  24.     @RequestMapping(value = "testData",produces = MediaType.APPLICATION_JSON_UTF8_VALUE,method = {RequestMethod.POST,RequestMethod.GET})  
  25.     @ApiOperation("测试读写分离")  
  26.     public String testDateSource(  
  27.             @ApiParam(name = "userCode",value = "用户id",required = true)  
  28.             @RequestParam Integer userCode){  
  29.         User user=testService.selectByUserCode(userCode);  
  30.         Integer integer=testService.insertUser(user);  
  31.         return "oo";  
  32.     }  
  33. }  



以上就是controller里主要用到的@Api,  @ApiOperation ,@ApiParam


在model里使用@ApiModelProperty("")

  •   
  • import com.fasterxml.jackson.annotation.JsonIdentityInfo;  
  • import io.swagger.annotations.ApiModel;  
  • import io.swagger.annotations.ApiModelProperty;  
  • import lombok.Data;  
  • import org.springframework.stereotype.Component;  
  •   
  • import java.util.Date;  
  • @Data  
  • public class User {  
  •     @ApiModelProperty("用户id")  
  •     private Integer userCode;  
  •     @ApiModelProperty("用户类型")  
  •     private String userType;  
  •     @ApiModelProperty("用户名称")  
  •     private String userName;  
  •     @ApiModelProperty("用户手机号")  
  •     private String mobileNumber;  
  • }  





























以上是关于springboot配置swagger2的主要内容,如果未能解决你的问题,请参考以下文章

springboot配置文件注解

SpringBoot——SpringBoot入门SpringBoot的自动配置配置文件和开发小技巧

springboot指定配置文件运行

SpringBoot SpringBoot 配置

springboot自动配置

springboot配置fastjson