Spring接口注入 - 如何访问特定于实现类的方法

时间:2013-10-18 09:18:48

标签: spring

为清楚起见,请考虑以下设计 -

Interface MyIface{
 myInterfaceContract(someObject);
};

Class Child1 implements MyIface{
   myInterfaceContract(someObject){ //implemented }
   myChild1Action(){ //implemented }
}

Class Child2 implements MyIface{
   myInterfaceContract(someObject){ //implemented }
   myChild2Action(){ //implemented }
}

我知道如何通过spring注释实现接口注入。 怀疑是 - 如果完成基于接口的注入,那么如何访问我的子类中直接实现的方法,即myChild1Action()/ myChild2Action()

我在做什么或者在想大错?

1 个答案:

答案 0 :(得分:1)

我会说你的想法很混乱。如果您基于接口进行注入,那么这意味着该接口为您提供了所需的所有功能。如果您需要实现中的方法,那么该接口无法满足您的需求,并且您需要执行注入具体实现。

大多数情况下,如果你使用instanceof来找到你所拥有的类,那么你可以调用一些额外的方法,那么这就是你的设计被打破的标志。

您可能会发现定义“Finder”界面并让Child1实现它并将bean注入Finder字段以及MyIFace字段会很有帮助。