Liquibase 是否在 Spring Boot 应用程序中注册所有 bean 之前运行?

Pra*_*mar 5 java spring database-migration liquibase spring-boot

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

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

我的 liquibase 依赖项:

<dependency>
            <groupId>org.liquibase</groupId>
            <artifactId>liquibase-core</artifactId>
            <version>3.8.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

hts*_*ame 4

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

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

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

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