Spring+SpringMVC添加SwaggerUI测试接口_XML版
Spring+SpringMVC添加SwaggerUI测试接口_XML版
由于Swagger配置类的特殊性,完全使用XML形式,目前没找到方法,我将介绍的是XML+注解形式,其实原理与注解形式一样,添加依赖,创建配置类,包扫描,取消静态资源拦截,添加注解并使用。
首先引入所需的依赖,目前主流使用版本是2.10.5
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.10.5</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.10.5</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-spring-webmvc</artifactId>
<version>2.10.5</version>
</dependency>
添加一个SwaggerConfig配置类,所在包不限
注意扫描路径要改成自己的
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.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
import java.util.function.Predicate;
@Configuration
//开启swagger2的webmvc支持
@EnableSwagger2WebMvc
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
// 构建API文档 文档类型为swagger2
return new Docket(DocumentationType.SWAGGER_2)
.select()
// 配置 api扫描路径
.apis(RequestHandlerSelectors.basePackage("com.alibaba.test.controller"))
// 指定路径的设置 any代表所有路径
.paths(PathSelectors.any())
// api的基本信息
.build().apiInfo(new ApiInfoBuilder()
// api文档名称
.title("自定义标题")
// api文档描述
.description("自定义描述")
// api文档版本
.version("1.0") // 版本
.build());
}
}
对Spring-Mvc.xml文件的配置
几项必须:
首先要开启注解扫描,因为配置是使用@Configuration的配置类
静态资源
<!--重要!必须开启注解驱动-->
<mvc:annotation-driven/>
<!--此案例开启静态资源移交tomcat-->
<mvc:default-servlet-handler/>
<!--swagger内部配置类,需要被扫包创建-->
<context:component-scan base-package="springfox.documentation.swagger.web"></context:component-scan>
<!--重要!配置swagger资源不被拦截(以下两个静态目录不被移交到tomcat)-->
<mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/" />
<mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/" />
<!--重要!将你的SwaggerConfig配置类注入-->
<bean id="swaggerConfig" class="com.alibaba.config.SwaggerConfig"/>
在需要做测试的Controller类或方法上添加相关注解
类注解 @Api 为必须,其他注解主要方便测试识别方法的功能和描述
附注解案例
@RequestMapping("/user")
@RestController
@Api(tags = "用户模块")
public class UserController {
@Autowired
private UserService userService;
@Autowired
private HttpSession session;
@ApiOperation(value = "注册功能")
@ApiImplicitParam(name = "userVo" ,value = "用户注册的信息",required = true,dataType = "UserVo")
@PostMapping("/register")
public ResponseWrap<Boolean> registerUser(@RequestBody UserVo userVo) throws ProjectException {
try {
boolean flag = userService.registerUser(userVo);
//后续部分省略

浙公网安备 33010602011771号