春季Autowiring类与界面?
我有这个springconfiguration:
<bean id="boo" class="com.x.TheClass"/>
TheClass类实现TheInterface 。 然后我有这个(假设的)Java代码:
@Autowired TheInterface x; @Autowired TheClass y;
TheInterface的自动TheInterface工作,但TheInterface的自动TheClass失败。 Spring给了我一个NoSuchBeanDefinitionException的类。
为什么你可以连接界面而不是class级?
通常情况下,两者都可以工作,您可以自动连接接口或类。
在你的上下文中可能有一个autoproxy生成器,它将你的boo bean包装在一个生成的代理对象中。 这个代理对象将实现TheInterface ,但不会是一个TheClass 。 使用autoproxies时,您需要编程到接口,而不是实现。
可能的候选人是事务性代理 – 您是使用Spring事务,使用AspectJ还是@Transactional ?