[英]How to override a specific Spring bean locally rather than allow global bean definition overriding?
我有一个第三方@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 使用@Primary
注释。
@Configuration
@Import(ThirdPartyConfig::class)
class MyLocalConfig {
@Primary
@Bean
fun someBean() = ...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.