Spring Kotlin Bean DSL - 仅当存在其他 bean 时才注册 bean?

Spring Kotlin Bean DSL - register bean only if other bean is present?

我只想在上下文中存在另一个 bean (anotherBeanThatShouldBePresent) 时注册 bean (MyBean)。

我怎样才能做到这一点?

bean {
    MyBean(
        anotherBeanThatShouldBePresent = ref()
    )
}

您可以使用 ObjectProvider 来创建依赖于另一个 bean 的 bean

bean {
    provider<OtherBeanOnWhichIDepend>().ifAvailable {
        bean<MyCustomBean>()
    }
}

使用此代码,仅当 OtherBeanOnWhichIDepend bean 可用时,我才会注册 MyCustomBean