SpringMVC集成Swagger2生成在线API文档

SpringMVC集成Swagger2生成在线API文档

上一篇文章中讲解了SpringBoot集成Swagger2构建在线API文档,大家可以去看看

今天详细介绍一下SpringMVC集成swagger2

一、代码集成

pom.xml

		<!-- swagger2配置 -->
		<dependency>  
		     <groupId>io.springfox</groupId>  
		     <artifactId>springfox-swagger2</artifactId>  
		     <version>2.4.0</version>  
		 </dependency>  
		 <dependency>  
		     <groupId>io.springfox</groupId>  
		     <artifactId>springfox-swagger-ui</artifactId>  
		     <version>2.4.0</version>  
		 </dependency> 
		<!-- swagger2配置 -->

在spring-mvc.xml中添加映射静态的配置:

<mvc:default-servlet-handler />

新增SwaggerConfig配置类:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;

import io.swagger.annotations.ApiOperation;
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;


/**
 * 
    * @ClassName: SwaggerConfig
    * @Description:swagger2配置类
    * @date 2020年12月17日
    *
 */
@Configuration
@EnableSwagger2
@EnableWebMvc
public class SwaggerConfig {

    @Bean
    public Docket buildDocket(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(buildApiInf())
                .select()
//                .apis(RequestHandlerSelectors.basePackage("com.xingguo.logistics.controller"))//controller路径
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) //为有@ApiOperation注解的方法生成API文档
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo buildApiInf(){
    	return new ApiInfoBuilder()
                .title("接口API")  //文档标题
                .contact(new Contact("liud",  //作者
                        "",
                        "")) //联系人
                .description("接口API")//详细信息
                .version("1.0.0")//文档版本号
                .termsOfServiceUrl("")//网站地址
                .build();

    }
}

避坑操作:
①其中@EnableWebMvc这个注解需要加入,不然会报错,无法启动项目

②然后在spring-mvc.xml中注入SwaggerConfig配置类:

   <!-- swagger2config配置类注入 -->
	<bean id="swaggerConfig" class="com.liud.common.config.SwaggerConfig"></bean>

二、使用

在Controller中添加注解@API来标注这个类是swagger的资源

@Api(value="接口controller",description="操作接口")
public class ApiControllor {

在方法上面使用注解@ApiOperation()表示一个http请求的操作
在参数前面使用注解@ApiParam()表示对参数的添加元数据(说明或是否必填等)

    @RequestMapping(value = "/houseTransferNew", method = RequestMethod.POST)
    public String houseTransferNew(@RequestBody  @ApiParam(name="房屋转让对象",value="传入json格式",required=true) HouseTransferNewHistory houseTransferNewHistory) {

最后启动项目,访问地址:
http://{ip}:{port}/{projectname}/swagger-ui.html#/
在这里插入图片描述

おすすめ

転載: blog.csdn.net/qq_28545605/article/details/111313206