1、pom文件引入jar
io.springfox
springfox-swagger-ui
2.7.0
io.springfox
springfox-petstore
2.7.0
导入以上两个包基本上就是够用了,不过因为各自项目配置的问题,有些项目只导入上面两个包会报错
org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NoSuchMethodError: com.google.common.collect.Multimaps.asMap(Lcom/google/common/collect/ListMultimap;)Ljava/util/Map;
at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:176)
如果启动时报以上的错说明需要导入Google依赖包
com.google.guava
guava
23.4-jre
pom.xml配置完成。
2、新建SwaggerConfig,位置随便放在applicationContext.xml中扫描路径写对就可以了
@EnableWebMvc
@EnableSwagger2
public class SwaggerConfig extends WebMvcConfigurationSupport {
/**
* 设置swagger开关
*/
@Value("${swagger.is.enable}")
private boolean swagger_is_enable;
/**
* 这是一个接口自动生成器,用来生成接口的文档
* @return
*/
@Bean
public Docket myDocket() {
Docket docket = new
Docket(DocumentationType.SWAGGER_2).enable(swagger_is_enable);
ApiInfo apiInfo = new ApiInfoBuilder()
.title("系统API接口文档")
.description("前台API接口")
.contact(new Contact("", "", ""))
.version("1.1")
.build();
docket.apiInfo(apiInfo);
//设置只生成被Api这个注解注解过的Ctrl类中有ApiOperation注解的api接口的文档
docket.select().apis(RequestHandlerSelectors.withClassAnnotation((Class extends Annotation>) Api.class)).apis(RequestHandlerSelectors.withMethodAnnotation((Class extends Annotation>) ApiOperation.class)).build();
return docket;
}
}
3、配置applicationContext.xml
以上三行配置
如果是boot项目 配置基本上就配置完成,这里不做多写。SSM项目web.xml中springmvc中配置是
4、以下做特殊说明关于SSM项目web.xml中springmvc中配置是
用以上配置无法成功,一直弹出Unable to infer base url...
GET http://localhost:8080/xiangmu/swagger-resources/configuration/ui 404 (Not Found)
的配置,(或许有的项目配置的也是*.xxx也可以直接成功,笔者遇见的是本身的项目配置是*.action)笔者在集成的时候就是遇到了一直404的错误,查阅了大量的资后,发现大部分都在说如果不配置成
如是这种情况略去3步,在applicationContext.xml中添加apidoc/resources路径可随自己设置具体看第5点
5、从https://github.com/swagger-api/swagger-ui 获取其所有的 dist 目录下东西放到需要集成的项目里
6、并打开复制过来的 index.html,修改 url
写到这的时候发现本地化后这个路径时写死的,不方便大家克隆代码后还要自行修改自己的路径(每个人使用的路径端口号不相同),所以改成了动态获取
7、在web.xml中新增
mvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
/WEB-INF/applicationContext.xml
1
mvc
*.action
mvc
/v2/api-docs
8、以上就配置成功启动后可以直接访问http://localhost:8080/apidoc/resources/index.html,项目中添加注解这里不过多阐述。
参考文献:https://www.cnblogs.com/hailongchen/p/8262027.html