我的 Spring Boot 应用程序需要 FF4j
。我尝试一下
<dependency>
<groupId>org.ff4j</groupId>
<artifactId>ff4j-spring-boot-starter</artifactId>
<version>1.8</version>
</dependency>
在这种情况下,我的应用程序由于 swagger 而被破坏。
我可以从我的配置中排除org.ff4j.spring.boot.web.api.config.SwaggerConfig
吗?
我尝试管理它,但由于新的不同问题而无法达成最终解决方案。
最佳答案
如果您在应用程序中配置swagger
,通常情况下,它会因为不同的原因而失败。下一个可能的:
- spring 需要决定应该使用哪个 swagger bean;
- 如果您使用 bean 名称
api
,则发生 cg-lib 冲突; swagger 冲突,因为同一 spring 上下文中有两个不同的 Docket Bean;
首先,我尝试以类似的方式排除
ff4j-spring
自动配置配置步骤,但例如排除swagger
。如果没有他们的招摇,应用程序无法启动 ff4j。这很困惑。寻找不同的解决方案,我尝试遵循一些建议 like但我在申请时遇到了缺课的不同问题。错过的类(class)位于 thymeleaf5 中。我无法使用 thymeleaf5 ,因为它使用相同的名称接口(interface)但不同的参数。其他解决方法使我的应用程序因 hibernate 而失败。
Swagger 解决方案是:
在您的配置中从 ff4j
注入(inject) swagger
Docket
:
@Autowired
Docket api;
并使用 @PostConstruct
block 中的配置重写 api
。这个解决方案并不优雅,但提供了对 swagger 配置的修复。
@PostConstruct
public void reconfigureSwagger() {
api....
}
附注
在招摇问题之后,我有更多 Unresolved 元素(但这将是一个不同的问题)。
PS2。
FF4j
库提供了很棒的 UI 和想法,这就是我不回避它的头痛的一般原因。
关于java - Spring boot FF4j ff4j-spring-boot-starter 不包括 swagger 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55460707/