java - @Autowired 和 TransactionProxyFactoryBean?

标签 java spring

我有一个在 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/

相关文章:

spring - Spring Data 存储库如何知道您的数据库位于何处?

java - 序列化后,Instanceof 对于同一个类返回 false

java - getter 和 setter 都应该同步吗?

java - 为什么运行堆转储会导致我的线程数大幅下降?

java - 如何使用 HTTPServletRequest 在 spring 中读取请求参数值

java - 隐藏应用程序启动器图标

javascript - Spring MVC 使用 javascript 下载 xls

java - Spring Jackson 数组而不是 List

并行的Spring Boot多个缓存管理器

spring - Togglz 与 Spring @Configuration bean