【发布时间】:2020-07-08 03:36:17
【问题描述】:
我有一个第三方 @Configuration 类,它定义了一个我想用我自己的版本替换的 bean,但我不想排除该配置,因为它定义了我需要的许多其他 bean。相反,我想实现这样的目标:
@Configuration
class ThirdPartyConfig {
...
// unfortunately, there's no @ConditionalOnMissingBean annotation here
@Bean
internal fun someBean() = ...
}
@Configuration
@Import(ThirdPartyConfig::class)
class MyLocalConfig {
// overrides "someBean" in `ThirdPartyConfig`
@Bean(overrideExistingBeanWithSameNameIfAny = true)
fun someBean() = ...
}
在 Spring / Spring Boot 中可以吗?
【问题讨论】:
-
为什么不只包含 bean 副本的配置,然后根据本地配置对其进行修改?
-
因为它是按名称注入到
ThirdPartyConfig中定义的其他bean。我不能告诉他们使用不同的 bean。 -
你试过了吗?
标签: java spring spring-boot kotlin