我最近被迫将 Springfox fox 的版本从 2.9.x 升级到 2.10.0,之后以下代码停止工作:
import com.google.common.base.Predicate;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
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;
import java.util.Collections;
import static com.google.common.base.Predicates.or;
import static springfox.documentation.builders.PathSelectors.regex;
@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
private Predicate<String> paths() {
return or(
regex("/unit.*"),
regex("/element.*"),
regex("/resources.*"),
regex("/calculation.*"),
regex("/taxi.*")
);
}
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(paths())
.build()
.apiInfo(getApiInfo());
}
升级后,我注意到注释 @EnableSwagger2 更改为 @EnableSwagger2WebMvc,在进行此更改后,我还注意到现在他们使用 Java 谓词而不是 Google 谓词。由于该 or(...) 方法,此代码不再编译,任何面临此问题的人都可以分享在较新版本的 swaggerfox 中执行此操作的新方法是什么。