Spring,加载具有特定依赖性的bean

时间:2013-04-18 14:49:45

标签: java spring

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

示例:

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

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

实际上我发现的唯一解决方案是加载两个不同的应用程序上下文,每个应用程序上下文都有一组共同的<include .../>指令和一个特定的指令我已经声明了存储(因此每个应用程序上下文都有一个声明商店)。我可以使用单个应用程序上下文执行相同的操作吗?

2 个答案:

答案 0 :(得分:1)

您可以使用其ID来引用特定bean,因此在自动装配时使用

 @Qualifer("someBeanId")

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

答案 1 :(得分:1)

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