gradle 依赖:
buildscript {
ext {
springBootVersion = '1.5.9.RELEASE'
swaggerVersion = '2.7.0'
}
repositories {
maven {
url '私服仓库地址'
}
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
dependencies {
compile group: 'io.springfox', name: 'springfox-swagger2', version: swaggerVersion
compile group: 'io.springfox', name: 'springfox-swagger-ui', version: swaggerVersion
}
Swagger 配置:
@Configuration
@EnableSwagger2
public class Swagger2 {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(
RequestHandlerSelectors.basePackage("com.xxx.xxx")).paths(
PathSelectors.any()).build();
}
/**
* 页面中展现的概述信息
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder().title("标题").contact("Author").version(
"Version").build();
}
}
访问:http://IP:port/contextPath/swagger-ui.html
相关注解说明:
@Api:作用于Controller上,描述控制器的作用 @ApiOperation:作用于方法上,描述方法的作用 @ApiIgnore:作用于方法上,使该方法不被显示在Swagger UI 文档中 @ApiImplicitParam:作用于方法上,描述方法中请求的参数
@Api(value = "这是一个控制器", description= "这个控制器是处理XXX的")
public class XxxController{
/**
* tags 可以将控制的方法进行分类,想用tags的方法在同一父节点下
*/
@GetMapping("/user/{id}")
@ApiOperation(value = "获取用户信息", tags = "tag1")
@ApiImplicitParam(name = "id", value = "参数描述", required = true, dataType = "String")
public User getUser(@PathVariable String id){
return new User();
}
}
@ApiModel:作用与POJO类上,可显示POJO类属性 @ApiModelProperty:作用于@ApiModel标记的POJO类的属性上,对属性进行描述
@ApiModel
public class User{
@ApiModelProperty("姓名")
private String name = "";
}
其他注解没有深入研究,欢迎补充!