笔者最近拿springmvc4.x+swagger 2.8(最新版本)集成过程中碰到一些问题,现在分享一下
1、引入的包
swagger2 的包 maven仓库上找的最新版
io.springfox
springfox-swagger2
2.8.0
io.springfox
springfox-swagger-ui
2.8.0
2、如果启动有报jackjson的错,请再引入jackjson的包
com.fasterxml.jackson.core
jackson-databind
2.6.6
3、我看过很多版本的集成,有些是不引入swagger-ui包,那么你就需要去自己下载swagger-ui 然后把 dist目录下的文件全部拷贝到自己的静态资源下。
我们需要把swagger的访问配置下静态路径
4、项目里配置swagger
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* @Author zhangwenfeng
* @Date 2018/1/17
* @Description
*/
@EnableWebMvc
@EnableSwagger2
@Configuration
public class RestApiConfig extends WebMvcConfigurationSupport {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("cn.zx.user.controller.api"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("用户中心api")
.termsOfServiceUrl("www.baidu.com")
.contact("xxxx")
.version("1.1")
.build();
}
}
5、最后一个注意点,如果使用的是 fastjson 请把版本升级到1.2.15以上。
6、使用 swagger-ui包的 访问路径为 http://{ip}:{port}:{project}/swagger-ui.html
7、在被扫描的controller里 加swagger注解,具体注解使用方式自行百度.