我有一个用XML创建的存储库类,如下所示:
<bean id="stuffRepositoryTarget" class="my.stuff.RepositoryImpl">
<!-- some params -->
</bean>
<bean id="stuffRepository" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" primary="true">
<property name="target" ref="stuffRepositoryTarget" />
<property name="transactionAttributes">
<prop key="*">PROPAGATION_REQUIRED</prop>
</property>
</bean>然后我有一个使用存储库的类,如下所示:
@Autowired Repository repository;看起来@Autowired注解引用的是我的Impl对象,而不是我的事务拦截器。我做错了什么?
发布于 2009-08-17 19:57:26
最可能的解释是TransactionProxyFactoryBean创建的bean没有实现Repository。
只是检查一下,但是Repository是一个接口,对吧?
另一件可以尝试的事情是用autowire-candidate="false"标记stuffRepositoryTarget,这将防止它被意外地自动连接。
发布于 2009-08-17 10:23:40
可能会对注入哪个bean感到困惑……向bean引用添加一个限定符,您可以使用该限定符指定希望注入的确切bean id。
类似于:
@Qualifier("stuffRepository")
@Autowired Repository repository;https://stackoverflow.com/questions/1280497
复制相似问题