1、创建Swagger配置类;
package com.xxx.swagger;
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.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* <p>
* Created by Sam on 2017/4/6.
* </p>
* <p>
* Swagger 2<br/>
* Updated by Sam on 2017/5/4
* </p>
*/
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
// 为当前包路径
.apis(RequestHandlerSelectors.basePackage("com.xxx.test.web")).paths(PathSelectors.any()).build();
}
/**
* 构建 api文档的详细信息函数,注意这里的注解引用的是哪个
* @return
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
// 页面标题
.title("通用测试rest接口发布")
// 创建人
.contact(new Contact("alenyt", "http://www.baidu.com", ""))
// 版本号
.version("1.0")
// 描述
.description("API描述").build();
}
}
2、在MVC配置中添加以下内容:
<context:component-scan base-package="springfox"/>
<mvc:default-servlet-handler />
<bean class="com.xxx.swagger.SwaggerConfig" />
<mvc:annotation-driven />
<mvc:resources location="classpath:/META-INF/resources/" mapping="swagger-ui.html"/>
<mvc:resources location="classpath:/META-INF/resources/webjars/" mapping="/webjars/**"/>
3、在security配置中添加对Swagger相关资源的放行;
<!-- swagger -->
<security:http security="none" pattern="/v2/api-docs" />
<security:http security="none" pattern="/swagger-resources/**" />
<security:http security="none" pattern="/configuration/ui" />
<security:http security="none" pattern="/swagger-ui.html" />
<security:http security="none" pattern="/configuration/security" />
<security:http security="none" pattern="/webjars/**" />
4、在pom.xml中引入swagger相关的依赖;
<!-- swagger2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
5、查看web.xml中DispatcherServlet对应的mapping的url-pattern是否为 / ,如果不是,修改为 / ;