我有一个在 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 对象,而不是我的事务拦截器。我做错了什么?
最佳答案
最可能的解释是 TransactionProxyFactoryBean
创建的 Bean 没有实现 Repository
。
只是检查,但是Repository
是一个接口(interface),对吗?
要尝试的另一件事是使用 autowire-candidate="false"
标记 stuffRepositoryTarget
,这将防止它被意外自动连接。
关于java - @Autowired 和 TransactionProxyFactoryBean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1280497/