1

是否可以加载一个 bean(范围“原型”)告诉 Spring 使用特定的依赖项创建它?

例子:

  • 依赖关系,“StoreA”和“StoreB”
  • 我要加载的bean,“服务”

我可以告诉 Spring 有时用“StoreA”加载“Service”,有时用“StoreB”加载吗?

实际上,我发现的唯一解决方案是加载两个不同的应用程序上下文,每个应用程序上下文具有一组通用<include .../>指令和一个我已声明存储的特定指令(因此每个应用程序上下文都有一个存储声明)。我可以使用单个应用程序上下文做同样的事情吗?

4

2 回答 2

1

在这种情况下,我最常使用FactoryBean。getObject() 方法可以定义您希望如何决定加载哪个存储。

于 2013-04-18T15:56:26.010 回答
1

您可以使用它们的 id 来引用特定的 bean,因此在自动装配时使用

 @Qualifer("someBeanId")

或在弹簧上下文中使用'ref'/'ref-local'

于 2013-04-18T14:52:47.917 回答