Spring属性加载取决于调用的类

时间:2012-02-21 07:05:23

标签: spring autowired

我有一个包含属性

的A类
class A{  
  String valA;  
}

我有两个B和C类,它们引用了A类

class B{  
   @Autowired  
   private A aaa;  
}


class C{  
   @Autowired  
   private A aaa;  
}

A类中的valA是属性驱动的,应该取决于实际调用它的类。

如果B类正在调用它,它应该是属性文件中定义的b.property 对于C类,值为c.property

这是否可以在不使用XML配置和仅注释,SPEL等

的情况下执行此操作

先谢谢

1 个答案:

答案 0 :(得分:0)

您需要两个不同的A实例(一个用于B,一个用于C),因为您无法根据调用A的方式更改A中属性的值*。

查看concept of qualifies,了解它们如何用于区分同一类的两个实例。

footenote * 当然你可以根据A的调用方式更改A中的参数,但这需要大量的技术代码和一些黑客攻击。并且应该不是您希望在春季应用程序中拥有的代码。