5

我已将 Liquibase 与我的 Spring Boot 应用程序集成。我有一个困惑是 - Liquibase 在注册所有 bean 之前运行。如果我们想在 bean 声明方法中从数据库中获取一些属性,并且该属性是由 Liquibase 执行的 sql 脚本编写的。那么,这两件事中哪一个会先发生呢?

我确实知道 liquibase 会自动集成到 spring boot 应用程序的启动中,即,它每次都运行,应用程序运行。但是,它会在加载同一应用程序的其他 bean 之前加载吗?

我的 liquibase 依赖:

<dependency>
            <groupId>org.liquibase</groupId>
            <artifactId>liquibase-core</artifactId>
            <version>3.8.2</version>
</dependency>
4

1 回答 1

4

那么,这两件事中哪一个会先发生呢?

  1. Liquibase 运行它的脚本。
  2. Spring-Boot 初始化你的 bean。

因此,您应该能够在 bean 初始化期间从数据库中获取数据(Liquibase 刚刚插入的数据)。

但正如评论中所建议的那样,您应该自己尝试并将日志添加到您的 bean 初始化方法中。这将使您更好地了解 Spring-Boot 应用程序的启动过程。

于 2020-02-18T07:36:55.253 回答