如果其他bean依赖它,如何忽略不存在的bean?

时间:2016-11-07 09:36:55

标签: java spring dependency-injection inversion-of-control

我在我的应用程序中使用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与上下文分离的方法是什么?

0 个答案:

没有答案