SpringMVC+Springfox-Swagger2动态生成Restful API文档

时间:2024-03-30 21:22:14

    本篇文章专注于实践,理论的话可以查询官方文档进行订阅!

    本项目采用maven的方式进行jar包的引入。

一、导入jar包。

    <dependency> 
  <groupId>io.springfox</groupId> 
  <artifactId>springfox-swagger2</artifactId> 
  <version>2.7.0</version> 
</dependency> 
<dependency> 
  <groupId>io.springfox</groupId> 
  <artifactId>springfox-swagger-ui</artifactId> 
  <version>2.7.0</version> 

    </dependency>

二、构建Swagger的配置类

@Configuration
@EnableWebMvc
@EnableSwagger2
@ComponentScan(basePackages="com.demo.controller")
public class SwaggerConfig {
    @Bean
    public Docket api(){
        return new Docket(DocumentationType.SWAGGER_2)
               .apiInfo(this.apiInfo())
               .select()
               .apis(RequestHandlerSelectors.basePackage("com.demo.controller"))
               .paths(PathSelectors.any())
               .build();
    }
    private ApiInfo apiInfo(){
return new ApiInfoBuilder()
.title("测试开放API接口文档")
.description("一个测试的接口文档")
.version("0.0.1")
.termsOfServiceUrl("www.baidu.com")
.license("LICENSE")
.licenseUrl("www.baidu.com")
.contact(new Contact("java程序员", "", ""))
        .build();
    }

}

三、进入springmvc的xml文件进行配置

<mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/"/>
<mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/"/>
<context:annotation-config/>

<mvc:default-servlet-handler/>

此处也可以用class文件进行配置,可自行查阅其他文档。

四、启动项目进行访问

http://localhost:8080/项目名/swagger-ui.html

五、部分报错解决

1、Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'java.util.List<org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping>' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}

解决方案:Swagger的配置类中缺少@EnableWebMvc的配置

2、SpringMVC+Springfox-Swagger2动态生成Restful API文档

SpringMVC+Springfox-Swagger2动态生成Restful API文档

出现如图的页面请先在控制台查询报错的信息是什么,本文报错如下:

SpringMVC+Springfox-Swagger2动态生成Restful API文档SpringMVC+Springfox-Swagger2动态生成Restful API文档

解决方案:web.xml配置中

<!-- 指定springmvc配置 -->
  <servlet>
  <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>  
  <param-name>contextConfigLocation</param-name>  
  <param-value>classpath:spring-config/springmvc.xml</param-value>  
</init-param>  
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern><!--要发送给DispatcherServlet的请求的URL-->

  </servlet-mapping>

springmvc的请求URL不要进行限制,否则部分文件无法访问。


版权声明:本文为博主原创文章,未经博主允许不得转载。 

http://blog.csdn.net/Wyz1960747127/article/details/79652740