一、pom配置
<!--引入Knife4j(新名)-->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-ui</artifactId>
<version>2.0.4</version>
</dependency>
二、swagger配置文件(swaggerConfig.java)
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket defaultApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(groupApiInfo())
.groupName("接口文档")
//引入自定义后缀类
.pathProvider(new CustRelativePathProvider())
.select()
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.paths(PathSelectors.any())
.build();
}
private ApiInfo groupApiInfo(){
return new ApiInfoBuilder()
.title("接口文档")
.description("接口文档")
.termsOfServiceUrl("https://www.XXXXX.com/")
.version("1.0")
.build();
}
}
三、自定义接口后缀实现类(CustRelativePathProvider.java)
/**
* @author: wade
* @date: 2021/8/3 17:42
* @describe: 自定义接口后缀
*/
public class CustRelativePathProvider extends AbstractPathProvider {
public static final String ROOT = "/";
@Override
public String getOperationPath(String operationPath) {
UriComponentsBuilder uriComponentsBuilder = UriComponentsBuilder.fromPath("/");
String uri = removeAdjacentForwardSlashes(uriComponentsBuilder.path(operationPath).build().toString());
return uri + ".json";
}
@Override
protected String applicationPath() {
return ROOT;
}
@Override
protected String getDocumentationPath() {
return ROOT;
}
}
四、spring.xml配置文件
<!--swagger配置bean-->
<bean id="SwaggerConfig" class="com.meiyunji.amzup.frontend.config.swagger.SwaggerConfig"></bean>
<!--swagger静态文件配置-->
<mvc:resources location="classpath:/META-INF/resources/" mapping="doc.html"/>
<mvc:resources location="classpath:/META-INF/resources/webjars/" mapping="/webjars/**"/>
五、web.xml配置文件
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/v2/api-docs</url-pattern>
</servlet-mapping>
<!--2.该接口是springfox提供的Swagger分组接口-->
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/swagger-resources</url-pattern>
</servlet-mapping>
<!--3.该接口是springfox提供的Swagger配置接口-->
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/swagger-resources/configuration/ui</url-pattern>
</servlet-mapping>
六、需要放行权限
"/v2/api-docs",
"/doc.html",
"/webjars/**",
"/swagger-resources/configuration/ui",
"/swagger-resources",