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

本文介绍了如何通过Springfox-Swagger2在SpringMVC项目中快速实现动态生成RESTful API文档。通过添加依赖、配置Swagger类以及调整Spring配置,可以在项目启动后访问 swagger-ui.html 来查看和测试API接口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

    本项目采用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、


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


解决方案: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.youkuaiyun.com/Wyz1960747127/article/details/79652740

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值