在我的Spring Boot应用程序中,我使用Flyway进行数据库迁移和MyBatis。 问题是MyBatis在Flyway 之前已初始化,因此在数据库迁移之前,一些数据库操作被称为(在@PostConstruct中)。
如果我查看 FlywayAutoConfiguration ,有:
@AutoConfigureAfter({DataSourceAutoConfiguration.class})
@AutoConfigureBefore({MybatisAutoConfiguration.class})
public class FlywayAutoConfiguration {
...
据我了解,我需要覆盖FlywayAutoConfiguration并添加:
{{1}}
不知道该怎么做。谢谢你的帮助。
答案 0 :(得分:0)
我会为@Bean
声明一个flyway()
定义,然后为你拥有的任何数据源声明另一个@Bean
定义,确保在flyway bean之后初始化它,你可以简单地通过在数据源bean声明中添加@DependsOn("flyway")
注释来实现。
通过这种方式,您可以确保数据源启动的任何数据初始化任务都将在flyway完成其工作之后完成。