首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在运行时spring启动时切换/更改bean实现?

如何在运行时spring启动时切换/更改bean实现?
EN

Stack Overflow用户
提问于 2022-09-29 08:43:59
回答 1查看 125关注 0票数 0

我在spring配置类中有一个父bean和一个子bean,类似于附件。如何根据某些条件(如功能切换)动态地将子bean注入父bean。

代码语言:javascript
复制
@Configuration
public class FooConfig {

   @Bean
   public void parentBean(@Qualifier("dependantBean") Object bean){
       //use the correct bean at runtime
   }

    @Bean("dependantBean")
    @FeatureToggle(feature = "feature.one", expectedToBeOn = true)
    public Object test1(){
        //some logic and returns a object
       return new Object();
    }

    @Bean("dependantBean")
    @FeatureToggle(feature = "feature.one",expectedToBeOn = false)
    public Object test2(){
       //some logic and returns a object which is different from test1 method
        return new Object();
    }
}
EN

回答 1

Stack Overflow用户

发布于 2022-09-29 11:49:24

在您的示例中,似乎将在应用程序启动时作出决定。

在这种情况下,您可以处理哪些bean被注入了概要文件(@Profile)。

附带注意:对创建相同bean的方法名称使用不同的名称。在这种情况下,bean的名称可以是相同的。

另一种选择可以是创建一个带有两个依赖bean的Map,并将映射注入父bean构造函数。

根据您想要的逻辑,您可以使用Map中的两个bean中的任何一个。

在本例中,对两个依赖bean使用不同的名称。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73892690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档