SpringBoot + Swagger2
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version></dependency><!-- 默认 UI ---- http://localhost:8080/swagger.html--><!--<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version></dependency>--> <!-- 引入swagger-bootstrap-ui包 /doc.html--><!-- 访问 http://localhost:8080/doc.html--><dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>swagger-bootstrap-ui</artifactId> <version>1.9.1</version></dependency>
@Configuration //配置类@EnableSwagger2// 开启Swagger2的自动配置public class SwaggerConfig { @Bean //配置docket以配置Swagger具体参数 public Docket docket(Environment environment) { // 设置要显示swagger的环境 Profiles of = Profiles.of("dev", "test"); // 判断当前是否处于该环境 // 通过 enable() 接收此参数判断是否要显示 boolean flag = environment.acceptsProfiles(of); System.out.println(flag); return new Docket(DocumentationType.SWAGGER_2)// .apiInfo(apiInfo())// 关联上 apiInfo() .groupName("group") .enable(flag) //配置是否启用Swagger,如果是false,在浏览器将无法访问 .select()// 通过.select()方法,去配置扫描接口,RequestHandlerSelectors 配置如何扫描接口 .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller")) // 配置如何通过path过滤,即这里只扫描请求以/abc 开头的接口 .paths(PathSelectors.ant("/abc/**")) .build(); } @Bean public Docket docket1(){ return new Docket(DocumentationType.SWAGGER_2).groupName("group1"); } @Bean public Docket docket2(){ return new Docket(DocumentationType.SWAGGER_2).groupName("group2"); } @Bean public Docket docket3(){ return new Docket(DocumentationType.SWAGGER_2).groupName("group3"); } //配置文档信息 private ApiInfo apiInfo() { Contact contact = new Contact("联系人名字", "联系人访问链接", "联系人邮箱"); return new ApiInfo( "API文档", // 标题 "学习演示如何配置Swagger", // 描述 "v1.0", // 版本 "组织链接", // 组织链接 contact, // 联系人信息 "Apach 2.0 许可", // 许可 "许可链接", // 许可连接 new ArrayList<>()// 扩展 ); }}
@Controllerpublic class HelloController { @ApiOperation(value = "访问测试",notes = "这是一个测试接口") @RequestMapping("/hello") @ResponseBody public String sayHello(){ return "hello"; } @RequestMapping("/abc") @ResponseBody public String abc(){ return "abc"; }}