我在我的应用程序中使用Flyway并将其配置为Spring bean,它以init-method(example configuration can be found here in the bottom)执行迁移。当然,迁移应该在应用程序与数据库的任何交互之前执行。
这就是我的数据源bean 依赖于 Flyway bean的原因。但是我使用@Profile
有条件地创建了Flyway bean,因为我不想在集成测试中使用相同应用程序的上下文来创建它。
问题在于,当我使用不创建Flyway bean的测试配置文件时,数据源实例化会因NoSuchBeanDefinitionException
而失败,因为它depends-on="flyway"
不是使用当前配置文件创建的。如果相关bean不存在,我可以以某种方式让spring忽略这个depends-on
依赖关系吗?如果不是,当我在测试配置文件中使用它时,将Flyway bean与上下文分离的方法是什么?