之前跟大家分享了Spring MVC集成springfox-swagger2构建基于rest的API,简单写了如何在springmvc中集成swagger2。这边记录下在springboot中如何集成swagger2。其实使用基本相同。
首先还是引用相关jar包。我使用的maven在pom.xml中引用相关依赖(原来我使用的是2.2.0的,现在使用测试盒框的):
& lt; dependency> & lt; groupId> io.springfox & lt; artifactId> springfox-swagger2 & lt; version> 2.4.0 & lt;/dependency> & lt; dependency> & lt; groupId> io.springfox & lt; artifactId> springfox-swagger-ui & lt; version> 2.4.0 & lt;/dependency>
第二步就是创建大摇大摆的配置类:
这个配置类和springmvc的写法完全一致。为了区分我又重命名一个。
包com.xingguo.springboot; 进口org.springframework.context.annotation.Bean; 进口org.springframework.context.annotation.Configuration; 进口springfox.documentation.builders.ApiInfoBuilder; 进口springfox.documentation.builders.PathSelectors; 进口springfox.documentation.builders.RequestHandlerSelectors; 进口springfox.documentation.service.ApiInfo; 进口springfox.documentation.service.Contact; 进口springfox.documentation.spi.DocumentationType; 进口springfox.documentation.spring.web.plugins.Docket; 进口springfox.documentation.swagger2.annotations.EnableSwagger2; @ configuration @EnableSwagger2 公开课Swagger2Configuration { @ bean 公共摘要buildDocket () { 返回新摘要(DocumentationType.SWAGGER_2) .apiInfo (buildApiInf ()) .select () .apis (RequestHandlerSelectors.basePackage (“com.xingguo.springboot.controller”)) .paths (PathSelectors.any ()) .build (); } 私人ApiInfo buildApiInf () { 返回新ApiInfoBuilder () .title(“兴国大标题”) .description (“springboot swagger2”) .termsOfServiceUrl (" http://blog.csdn.net/u014231523网址链接”) .contact(新联系人(“diaoxingguo”、“http://blog.csdn.net/u014231523”、“diaoxingguo@163.com”)) .build (); } }
在原来2.2.0的版本中使用<代码>新ApiInfo() 代码>的方法已经过时,使用<代码>新ApiInfoBuilder() 代码>进行构造,需要什么参数就添加什么参数。当然也可以什么都添加。如:
私人ApiInfo buildApiInfo () { 返回新ApiInfoBuilder () .build (); }
那么页面显示的效果如图:
使用新的ApiInfoBuilder () .build ();
添加属性:
点击<代码> ApiInfoBuilder。Java代码>的源码可以看到相关方法使用。
第三步就是在自己的控制器添加相关的注解:
原来使用在类上使用<代码> @ controller> 代码,现在可以使用<代码> @RestController> 代码,然后方法的<代码> @ResponseBody> 代码就可以不用写了,因为<代码> @RestController> 代码的注解接口上已经添加了,要求版本在4.0.1之后。
@Target (ElementType.TYPE) @Retention (RetentionPolicy.RUNTIME) @Documented @ controller @ResponseBody 公共@ interface RestController {/* * *可能表明一个建议值为一个逻辑组件名称, *变成一个Spring bean的一个组件。 * @return建议组件名称,如果有的话 * @since 4.0.1 */字符串值()默认””; }
<强>常用的注解如下:强>
,,,,,- <代码> @Api() 代码>用于类名
,,,,,- <代码> @ApiOperation() 代码>用于方法名
,,,,,- <代码> @ApiParam() 代码>用于参数说明
,,,,,- <代码> @ApiModel() 代码>用于实体类
,,,,,——<代码> @ApiModelPropert 代码> y用于实体类属性
更加详细的含义可以参考官方说明wiki