如果在春季有一个带有1个抽象公共方法的接口,并且此接口具有2个公共方法的实现(1个是覆盖的,第二个公共方法是额外的)。如果我们为接口自动布线,我们将无法在impl中使用第二个public方法。这是正确的行为吗?在Maven构建中,它确实说过它正在使用和自动装配IMPL bean,但找不到第二个额外的公共方法。
答案 0 :(得分:1)
更多的是Java问题,而不是Spring问题。这里发生了一些事情:
让我们看下面的示例:
您有一个接口SomeInterface
和方法methodA
,它的实现SomeInterfaceImpl
和methodA
和methodB
。
如果通过其接口自动装配bean:
@Autowired private SomeInterface someInterface;
然后,尽管您自动连接的是methodA
并实现了SomeInterfaceImpl
,但是您只能访问SomeInterfaceImpl
(显然没有显式地将其强制转换为methodB
。>
如果自动装配其实现:
@Autowired private SomeInterfaceImpl someInterface;
然后您就可以访问methodA
和methodB
。 HTH。