【问题标题】:How to make sure Flyway loads before my bean?如何确保 Flyway 在我的 bean 之前加载?
【发布时间】:2016-06-21 20:57:44
【问题描述】:

我有一个 Spring Boot 应用程序,其中一个 Bean 从数据库加载配置数据。

现在我在 Configuration 类中设置了这个 Bean。但它似乎在Flyway 之前加载。

如何确保Flyway 在我的bean 加载之前完成了它的工作?

【问题讨论】:

    标签: java spring spring-boot flyway spring-ioc


    【解决方案1】:

    您可以在启动 Spring Boot 应用程序之前对其进行初始化:

    @SpringBootApplication
    public class Application {
    
        public static void main(String[] args) {
            // Init Flyway here
            SpringApplication.run(Application.class, args);
        }
    }
    

    第二个选项是根据 Flyway 为您的 bean 使用 @DependsOn 注释。

    【讨论】:

    • 也许我也可以在 Config 类中自己创建 e Flyway bean,并在我的 Beans 之前将它 @Ordered ... ?
    • 我更新了我的答案。 @Ordered 似乎用于不同的目的。
    • 奇怪的是,Flyway 并没有在我的应用程序中自动配置。我现在手动创建了 bean,并为我的 Bean 使用了 @DependsOn("flyway")。
    猜你喜欢
    • 2014-09-13
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 2014-05-29
    • 1970-01-01
    • 2017-01-16
    相关资源
    最近更新 更多