1、引入依赖
<!-- swagger 依赖jar --><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version></dependency>
2、添加swagger配置文件
package com.xja.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.builders.PathSelectors;import springfox.documentation.builders.RequestHandlerSelectors;import springfox.documentation.service.ApiInfo;import springfox.documentation.service.Contact;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket;import springfox.documentation.swagger2.annotations.EnableSwagger2;@EnableSwagger2@Configurationpublic class Swagger2Config {@Beanpublic Docket createRestApi() {/**// 添加请求参数,我们这里把token作为请求头部参数传入后端ParameterBuilder parameterBuilder = new ParameterBuilder();List<Parameter> parameters = new ArrayList<>();parameterBuilder.name("token").description("令牌").modelRef(new ModelRef("string")).parameterType("header").required(false).build(); //header中的token参数非必填,传空也可以parameters.add(parameterBuilder.build());*/return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()//为当前包路径.apis(RequestHandlerSelectors.basePackage("edu.xja.controller")).paths(PathSelectors.any()).build();//.build().globalOperationParameters(parameters);}//构建 api文档的详细信息函数private ApiInfo apiInfo() {return new ApiInfoBuilder()//页面标题.title("Spring Boot集成Swagger2构建RESTful API")//创建人.contact(new Contact("Thomas", "http://www.nynu.edu.cn", "thomas@163.com"))//版本号.version("1.9")//描述.description("演示系统API描述").build();}}
注意事项:上面代码Contact 类引入的是:
import springfox.documentation.service.Contact;
代码解释:
Ø 通过@EnableSwagger2 注解开启swagger2
Ø 要配置一个Docket Bean
Ø 在.apis 方法中配置扫描controller的位置
Ø apinInfo方法中设置文档的基本信息,比如标题、联系人、版本、描述等
打开浏览器,地址栏中输入:localhost:8888/swagger-ui.html 
注:若启动不了,尝试在application启动类上加入注解@EnableSwagger2
3、Swagger主要注解
3.1、@Api
@Api 用在类上,说明该类的作用。可以标记一个Controller类做为swagger 文档资源
最重要是属性是tags,示例:
@Api(tags ={"学生管理Api"})
3.2、@ApiModel
@ApiModel用在类上,表示对类进行说明,用于实体类中的参数接收说明
最重要的属性如下,示例:
@ApiModel(value="学生实体类",description = "学生实体类信息")
3.3、@ApiModelProperty
@ApiModelProperty()用于字段,表示对model属性的说明最重要的属性,示例:
@ApiModelProperty(value="学生姓名",required = true)
3.4、@ApiParam
@ ApiParam用于Controller中方法的参数说明
3.5、@ApiOperation
@ApiOperation用在Controller里的方法上,说明方法的作用,每一个接口的定义,使用方式如下:
@ApiOperation(value="根据主键获取学生信息",notes="输入学生主键,获取学生信息")
3.6、@ApiResponse和ApiResponses
@ApiImplicitParams({@ApiImplicitParam(value="主键ID",name="id")})

