java - Spring Boot 延迟 Flyway 初始化循环依赖
问题描述
在 Hibernate 生成所有模式表后,我需要执行 Flyway 迁移。在迁移到 Spring Boot 2.2 之前,此代码运行良好
@Configuration
public class BaseFlywayConfiguration {
/**
* Override default flyway initializer to do nothing
*/
@Bean
FlywayMigrationInitializer flywayInitializer(Flyway flyway) {
return new FlywayMigrationInitializer(flyway, (f) -> {
});
}
/**
* Create a second flyway initializer to run after jpa has created the schema
*/
@Bean
@DependsOn("transactionManager")
FlywayMigrationInitializer delayedFlywayInitializer(Flyway flyway) {
return new FlywayMigrationInitializer(flyway, null);
}
}
不幸的是,在迁移到 Spring Boot 2.2.0 后,我收到一个与循环依赖相关的异常
这是日志:
应用上下文中一些bean的依赖形成了一个循环:
┌──────┐ | 类路径资源中定义的 transactionManager [com/myFleetSolutions/myFleet/organization/configuration/jpa/JPAConfigurationDev.class] └─────┘</p>
我该如何解决?
解决方案
我只是在@SpringBootApplication 类中注入了Flyway bean,并在CommandLineRunner init 方法中执行了flyway.migrate()。它在系统启动结束时执行并且工作正常
谢谢
安东尼奥
推荐阅读
- android - 谷歌的新地方图书馆(实施'com.google.android.libraries.places:1.0.0')没有解决
- php - 安装 PHP MySQLi 扩展只创建 .ini 文件并且找不到 MySQLi.so 模块
- r - 一个条形图在条形图中放错了位置(ggplot2)
- angular - 使用 Angular 7 迭代 HTML 标签?(动态)
- google-chrome - 使用 Google Chrome Headless 模式强制执行屏幕截图分辨率
- walmart-api - 如何获取 Walmart API 的 API 密钥?似乎没有任何工作
- javascript - window.addEventListener 代码在移动设备上不起作用
- javascript - 一些图像逆时针旋转 90 度
- ruby-on-rails - 在 Rails 中初始化数据库行?
- r - 在 papaja 中使用 apa_linplot 绘制错误:min(0, y.values[, "lower_limit"],