SpringMVC+SpringSecurity整合Swagger2实现在线Api

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是否为 / ,如果不是,修改为 / ;

上一篇:Spring Boot 入门系列(二十二)使用Swagger2构建 RESTful API文档


下一篇:SpringBoot整合Swagger2以及生产环境的安全问题处理