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

标签 java spring spring-boot database-migration liquibase

我已将 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>

最佳答案

So, which of the two things will happen first?


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

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

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

    关于java - Liquibase 是否在 Spring Boot 应用程序中注册所有 bean 之前运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60275268/

    相关文章:

    java - 如果监视器已经锁定,那么在java中对同步块(synchronized block)的请求会发生什么?

    Spring MVC 到 Spring Webflux 迁移 - block 与订阅

    java - 如何识别maven项目中潜在的java依赖命名空间冲突?

    java - 异常处理 errorPage[errorCode=0, location=/error]

    javascript - AngularJS(路由)在Eclipse中的Maven SpringBoot项目中找不到.html模板

    java - 如何用java中的接口(interface)覆盖方法

    java - Fabric8 maven 插件在运行构建时失败

    java - 在 Java 项目中的 Gradle 中定义常量

    java - 有没有办法将表行保存到 Firebase 中?实时还是 Firestore?

    java - Spring Security 加密字符串 - Go 中解密失败