重写继承Bean的名称



是否可以重写继承的抽象类的bean名称?

。我有一个带有Bean方法的抽象类。现在我想为扩展Bean设置一个特定的名称。这可能吗?如何实现?

@Configuration
abstract class AbstractConfig {
@Bean
open fun foo(): Foo {
// ....
}
}
@Configuration
class myConfig: AbstractConfig() {
@Bean("myFoo")
override fun foo(): Foo {
// ...
}
}

在上面的例子中,当制作Autowired/Inject时,您将始终获得重写实现(您永远不会在抽象类中获得)。如果您希望能够获得多个实现,您可以添加几个创建Foo的方法,每个方法将创建另一个实现并将具有另一个bean名称。

据我所知,你不能那样做。如果您想要连接到多个mongodb,您需要使用GenericApplicationContext.registerBean()方法以编程方式创建和注册bean。您可以在https://www.baeldung.com/spring-5-functional-beans找到更多详细信息。

最新更新