SpringMVC+Springfox-Swagger2动态生成Restful API文档
本篇文章专注于实践,理论的话可以查询官方文档进行订阅!
本项目采用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.csdn.net/Wyz1960747127/article/details/79652740