gpt4 book ai didi

spring - @EnableTransactionManagement、@ComponentScan 和 DataSourceTransactionManager 问题

转载 作者:行者123 更新时间:2023-12-01 02:23:00 25 4
gpt4 key购买 nike

在我的应用程序中,我使用基于注释的 Spring 配置。

我正在使用 @ComponentScan (而且效果很好)。现在我正在尝试使用 @EnableTransactionManagement 添加简单的事务管理。 .

但是,当我添加它时,我开始收到错误,因为找不到其中一个 bean(即我得到 BeanCreationException 因为 NoSuchBeanDefinitionException )。没有其他错误(即与事务管理无关)。

当我评论 @EnableTransactionManagement出来,一切正常。我正在尝试将其与 DataSourceTransactionManager 一起使用

可能是什么原因?

最佳答案

原因之一可能是您的 bean 实现了一个接口(interface)。

当bean实现接口(interface)变为@Transactional ,应该创建一个代理,默认情况下它将是您的类实现的接口(interface)的 JDK 代理。

因此,由于代理,bean 现在只能作为接口(interface)(代理)而不是具体类。

您可能应该重构您的类 - 使用服务方法引入另一个接口(interface)并将其引用为接口(interface)而不是类。

https://stackoverflow.com/a/8224772/241986

关于spring - @EnableTransactionManagement、@ComponentScan 和 DataSourceTransactionManager 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18874912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com