如何将Spring DataSourceInitializer与@Primary和辅助DataSource bean一起使用?

我有一个场景,我希望有一个依赖于另一个DataSource bean的@Primary DataSource DataSource bean。 当我这样做时,我当前遇到BeanCurrentlyInCreationExceptionexception,因为DataSourceInitializer在仍在创建时触发@Primary bean的解析。

我已经创建了一个示例存储库来重现此问题,并在有用的情况下更详细地解释它: https : //github.com/zachmarshall/spring-datasource-init-bug

为此创建了一个Spring Boot问题 。 有人承认代码至少有问题,但还没有真正的解决方案。

最终,我找到了一个解决方法 :

…通过在@Primary bean定义上使用@DependsOn("dataSourceInitializer") ,spring在主要标记为创建之前急切地创建dataSourceInitializer bean。 有点黑客但现在有效。