Swagger.java 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package com.gyee.consumer.config;
  2. import org.springframework.context.annotation.Bean;
  3. import org.springframework.context.annotation.Configuration;
  4. import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
  5. import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
  6. import springfox.documentation.builders.ApiInfoBuilder;
  7. import springfox.documentation.builders.PathSelectors;
  8. import springfox.documentation.builders.RequestHandlerSelectors;
  9. import springfox.documentation.service.ApiInfo;
  10. import springfox.documentation.spi.DocumentationType;
  11. import springfox.documentation.spring.web.plugins.Docket;
  12. import springfox.documentation.swagger2.annotations.EnableSwagger2;
  13. import javax.annotation.Resource;
  14. /**
  15. * Swagger 配置文件
  16. * @ClassName: Swagger
  17. * @Description: 配置文件
  18. * @author gyee
  19. * @date 2018年6月3日
  20. *
  21. */
  22. @Configuration(value="true")
  23. @EnableSwagger2 //启动swagger注解 启动服务,浏览器输入"http://localhost:8170/swagger-ui.html"
  24. public class Swagger implements WebMvcConfigurer {
  25. @Resource
  26. private V2Config v2Config;
  27. @Bean
  28. public Docket createRestApi() {
  29. return new Docket(DocumentationType.SWAGGER_2)
  30. .host(v2Config.getSwaggerip())
  31. // 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息)
  32. .apiInfo(apiInfo())
  33. // 设置哪些接口暴露给Swagger展示
  34. .select()
  35. // 扫描所有有注解的api,用这种方式更灵活
  36. .apis(RequestHandlerSelectors.basePackage("com.gyee"))
  37. // 扫描指定包中的swagger注解
  38. //.apis(RequestHandlerSelectors.basePackage("com.gyee.frame.controller"))
  39. // 扫描所有 .apis(RequestHandlerSelectors.any())
  40. .paths(PathSelectors.any())
  41. .build();
  42. }
  43. private ApiInfo apiInfo() {
  44. return new ApiInfoBuilder()
  45. //设置标题
  46. .title("API文档")
  47. //描述
  48. .description("项目")
  49. //作者信息
  50. //.contact(new Contact(v2Config.getName(), null, V2Config.getEmail_account()))
  51. //服务条款URL
  52. .termsOfServiceUrl("")
  53. //版本
  54. .version("")
  55. .build();
  56. }
  57. @Override
  58. public void addResourceHandlers(ResourceHandlerRegistry registry) {
  59. // 解决静态资源无法访问
  60. registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
  61. // 解决swagger无法访问
  62. registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
  63. // 解决swagger的js文件无法访问
  64. registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
  65. }
  66. }