gpt4 book ai didi

java - Spring 选择所需的 bean 实现

转载 作者:行者123 更新时间:2023-11-30 09:14:08 24 4
gpt4 key购买 nike

我在 Spring Web 应用程序中有一个原型(prototype)范围的 bean(我正在使用 Spring 注释),我们称它为 MainBean,它通过依赖注入(inject)使用 IOtherBean 的实现之一。

我遇到的问题是,直到运行时我们才知道需要使用哪个实现。当我们调用 MainBean 的一个方法时(比方说 doStuff(String param)),它应该根据参数值来确定选择哪个实现。

目前,我只是通过将 ApplicationContext Autowiring 到 MainBean 并根据参数值调用 appContext.getBean() 来完成此操作,并且效果很好。

我想知道是否有更清洁的方法?如果那些不是 Spring 管理的 bean,我会使用工厂模式来实例化正确的 bean。 Spring 有类似的东西吗?从我读到的内容来看,我看不出如何使用 Spring factory-bean 在运行时做我想做的事情。

感谢任何建议。

最佳答案

实际上通过使用 ApplicationContext.getBean() 您已经使用了 工厂模式,只是 Spring 的一个。 getBean() 方法在 ApplicationContext 扩展的 BeanFactory 接口(interface)中声明。所以你目前所做的对我来说没问题。

关于java - Spring 选择所需的 bean 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20653419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com