SpringBoot + Swagger2

  1. <dependency>
  2. <groupId>io.springfox</groupId>
  3. <artifactId>springfox-swagger2</artifactId>
  4. <version>2.9.2</version>
  5. </dependency>
  6. <!-- 默认 UI ---- http://localhost:8080/swagger.html-->
  7. <!--
  8. <dependency>
  9. <groupId>io.springfox</groupId>
  10. <artifactId>springfox-swagger-ui</artifactId>
  11. <version>2.9.2</version>
  12. </dependency>
  13. -->
  14. <!-- 引入swagger-bootstrap-ui包 /doc.html-->
  15. <!-- 访问 http://localhost:8080/doc.html-->
  16. <dependency>
  17. <groupId>com.github.xiaoymin</groupId>
  18. <artifactId>swagger-bootstrap-ui</artifactId>
  19. <version>1.9.1</version>
  20. </dependency>
  1. @Configuration //配置类
  2. @EnableSwagger2// 开启Swagger2的自动配置
  3. public class SwaggerConfig {
  4. @Bean //配置docket以配置Swagger具体参数
  5. public Docket docket(Environment environment) {
  6. // 设置要显示swagger的环境
  7. Profiles of = Profiles.of("dev", "test");
  8. // 判断当前是否处于该环境
  9. // 通过 enable() 接收此参数判断是否要显示
  10. boolean flag = environment.acceptsProfiles(of);
  11. System.out.println(flag);
  12. return new Docket(DocumentationType.SWAGGER_2)
  13. // .apiInfo(apiInfo())// 关联上 apiInfo()
  14. .groupName("group")
  15. .enable(flag) //配置是否启用Swagger,如果是false,在浏览器将无法访问
  16. .select()// 通过.select()方法,去配置扫描接口,RequestHandlerSelectors 配置如何扫描接口
  17. .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
  18. // 配置如何通过path过滤,即这里只扫描请求以/abc 开头的接口
  19. .paths(PathSelectors.ant("/abc/**"))
  20. .build();
  21. }
  22. @Bean
  23. public Docket docket1(){
  24. return new Docket(DocumentationType.SWAGGER_2).groupName("group1");
  25. }
  26. @Bean
  27. public Docket docket2(){
  28. return new Docket(DocumentationType.SWAGGER_2).groupName("group2");
  29. }
  30. @Bean
  31. public Docket docket3(){
  32. return new Docket(DocumentationType.SWAGGER_2).groupName("group3");
  33. }
  34. //配置文档信息
  35. private ApiInfo apiInfo() {
  36. Contact contact = new Contact("联系人名字", "联系人访问链接", "联系人邮箱");
  37. return new ApiInfo(
  38. "API文档", // 标题
  39. "学习演示如何配置Swagger", // 描述
  40. "v1.0", // 版本
  41. "组织链接", // 组织链接
  42. contact, // 联系人信息
  43. "Apach 2.0 许可", // 许可
  44. "许可链接", // 许可连接
  45. new ArrayList<>()// 扩展
  46. );
  47. }
  48. }
  1. @Controller
  2. public class HelloController {
  3. @ApiOperation(value = "访问测试",notes = "这是一个测试接口")
  4. @RequestMapping("/hello")
  5. @ResponseBody
  6. public String sayHello(){
  7. return "hello";
  8. }
  9. @RequestMapping("/abc")
  10. @ResponseBody
  11. public String abc(){
  12. return "abc";
  13. }
  14. }