pom

  1. <dependency>
  2. <groupId>io.springfox</groupId>
  3. <artifactId>springfox-swagger2</artifactId>
  4. <version>2.6.1</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>io.springfox</groupId>
  8. <artifactId>springfox-swagger-ui</artifactId>
  9. <version>2.6.1</version>
  10. </dependency>
  11. <dependency>
  12. <groupId>com.google.guava</groupId>
  13. <artifactId>guava</artifactId>
  14. <version>20.0</version>
  15. </dependency>

config

swagger2Config

  1. import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
  2. import org.springframework.context.annotation.Bean;
  3. import org.springframework.context.annotation.Configuration;
  4. import springfox.documentation.builders.ApiInfoBuilder;
  5. import springfox.documentation.builders.PathSelectors;
  6. import springfox.documentation.builders.RequestHandlerSelectors;
  7. import springfox.documentation.service.ApiInfo;
  8. import springfox.documentation.spi.DocumentationType;
  9. import springfox.documentation.spring.web.plugins.Docket;
  10. import springfox.documentation.swagger2.annotations.EnableSwagger2;
  11. import springfox.documentation.service.Contact;
  12. @Configuration
  13. @EnableSwagger2
  14. @ConditionalOnExpression("${swagger.enable}")
  15. public class swagger2Config {
  16. @Bean
  17. public Docket userRestApi() {
  18. return new Docket(DocumentationType.SWAGGER_2)
  19. .groupName("用户模块") //模块名称
  20. .apiInfo(apiInfo())
  21. .select()
  22. .apis(RequestHandlerSelectors.basePackage("com.example.logre.controller")) //扫描的控制器路径
  23. .paths(PathSelectors.any())
  24. .build();
  25. }
  26. private ApiInfo apiInfo() {
  27. return new ApiInfoBuilder()
  28. .title("xxx项目开发接口文档") //接口文档标题
  29. .description("此文档仅供开发技术组领导、开发人员使用") //描述
  30. .termsOfServiceUrl("http://www.baidu.com/") //相关的网址
  31. .contact(new Contact("后端开发","http://www.xxx.com/","XXXXXX7805@qq.com")) //作者 邮箱等
  32. .version("1.0") //版本号
  33. .build();
  34. }
  35. }

MvcStaticMappingConfig

  1. import org.springframework.context.annotation.Configuration;
  2. import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
  3. import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
  4. @Configuration
  5. @EnableWebMvc
  6. public class MvcStaticMappingConfig implements WebMvcConfigurer {
  7. /**
  8. * 设置静态资源路径的映射
  9. */
  10. @Override
  11. public void addResourceHandlers(ResourceHandlerRegistry registry) {
  12. // 解决静态资源无法访问
  13. registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
  14. // 解决swagger无法访问
  15. registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
  16. // 解决swagger的js文件无法访问
  17. registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
  18. }
  19. }

controller

  1. @RestController
  2. @RequestMapping("demo")
  3. @Api(tags = "demo")
  4. public class DemoController {
  5. @ApiOperation(value = "新增商品",notes = "新增商品方法",httpMethod = "POST", response = String.class)
  6. @RequestMapping("getName")
  7. public String getName(@RequestBody Name name){
  8. return name.getName();
  9. }
  10. }

model

  1. import io.swagger.annotations.ApiModel;
  2. import io.swagger.annotations.ApiModelProperty;
  3. import lombok.Data;
  4. import java.util.List;
  5. @ApiModel(value="user对象",description="用户对象user类")
  6. @Data
  7. public class Name {
  8. @ApiModelProperty(value="用户id",name="id",example="100",required=true)
  9. private Long id;
  10. @ApiModelProperty("姓名")
  11. private String name;
  12. @ApiModelProperty("年龄")
  13. private String age;
  14. @ApiModelProperty("性别")
  15. private Sex sex;
  16. @ApiModelProperty("地址")
  17. private String addr;
  18. @ApiModelProperty("手机号")
  19. private String phone;
  20. @ApiModelProperty("邮箱")
  21. private String email;
  22. @ApiModelProperty("身份证")
  23. private String idCard;
  24. @ApiModelProperty("健康")
  25. private String health;
  26. @ApiModelProperty("获取")
  27. private List<Good> goods;
  28. }