gpt4 book ai didi

java - Spring Boot Actuator FlywayEndpoint 不适用于多个 Flyway bean

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:37:45 25 4
gpt4 key购买 nike

我正在尝试将我目前正在处理的项目从 Spring Boot 1.2.8 升级到最新版本 (1.4.0)。我发现,自版本 1.3.0 以来,Spring Boot Actuator 将 Flyway 迁移公开为 Actuator 端点。此端点将单个 Flyway bean 作为参数。

https://github.com/spring-projects/spring-boot/blob/master/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/EndpointAutoConfiguration.java#L187

我的项目使用多个 Flyway bean 来管理多个数据库的迁移,当我尝试启动应用程序时,Spring 提示 NoUniqueBeanDefinitionException。

当我禁用 EndpointAutoconfiguration 时,上下文会被正确创建。我此时不一定需要 Flyway 端点,但我们确实使用其他端点进行监控,因此我不想禁用所有端点。我尝试使用

在 application.properties 文件中禁用 flyway 端点
endpoints.flyway.enabled=false

但 Spring 仍然提示(我认为它无论如何都会尝试创建端点 bean,并且“已启用”属性用于确定端点在运行时的可用性)。

我认为目前我唯一的选择是手动启用我需要的端点并禁用自动配置。是吗?

此外,为什么 FlywayEndpoint 仅适用于存在的单个 Flyway bean,是否有原因?据我所知,构造函数可以只获取 Flyway bean 的列表,然后 invoke() 方法可以迭代它们。

https://github.com/spring-projects/spring-boot/blob/master/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/endpoint/FlywayEndpoint.java#L54

最佳答案

I think currently my only option is to manually enable the endpoints that I need and disable autoconfiguration. Is that right?

是的,我认为这是对的。您看到的行为是一个错误,所以我打开了 an issue .我们将在 1.4.1 和 1.3.8 中修复它。

And also, is there a reason, why the FlywayEndpoint only works with a single Flyway bean present?

除了我们没有考虑您的用异常(exception),没有其他原因。我打开了an enhancement端点支持多个 Flyway bean(Liquibase 也是如此)。

关于java - Spring Boot Actuator FlywayEndpoint 不适用于多个 Flyway bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38876430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com