【Spring】- 使用注解管理事务时事务无法生效并且无法生成代理对象 ❤️❤️❤️

错误描述

今天在学习 Spring事务的时候 遇到了一个很坑的问题 , 我自己把我自己坑了 , 就是 我在使用注解管理事务时 , 设置了 @Transactional 注解 , 并且配置也是 ok 的 ,
但是 事务就是不生效 , 我百度了各种可能的原因都没有解决 , 并且 , 当某一个类的 某个方法 设置了 Transactional 注解 , 这个类创建时是有代理创建的,我输出类这个类很明显也不是代理类 , 我百思不得其解

然后 我又重新建了一个工程, 把之前的 配置文件复制了 这次是 ok的 ?
竟然成功了 ? 说明我写的是没有问题的 ,但是为什么 ? 前面那个是有问题 , 能够正常创建容器对象, 但是不是代理对象,
在这里插入图片描述
第一个 配置文件不行 , 第二个是 ok 的 , 但是这两个 内容完全一样, 那么这两个 不一样的 只有名字了 , 然后我把 第一个 改了名字, 然后果然 … 是 ok的 ?

这个时候我才意识到 , sprint-tx 这个名字 好像是spring 事务管理的配置文件 , 因为 当我 把 第一个 sprint-tx 改成 sprint-tx01 ,然后 我读取的时候按照 spring-tx 依然可以读取到 这个在我 目录下面不存在的配置文件 , 但是我改成其他的不存在的名字不可以 , 由于是新学 所以起名字比较随便 , 这里记录下来

注意 不要起和spring自带的配置文件相同的配置文件名


===========================================================

更新 : 上面的想法都是错误的 !!!

终于明白 为什么 出现上面的情况 !
在这里插入图片描述
昨天我没有意识到 我用junit测试 读取的是 testResources 目录下的 spring-tx.xml 文件 , 我还在疑惑为什么明明 我 resources 文件夹中明明没有 这个文件 ,但是依然是可以读取的 ,现在终于明白 , 并且也找到类为什么事务没有作用的原因 :
在这里插入图片描述
这个文件中根本没有设置 spring的事务配置 , 所以事务注解所在的对象肯定不是由 代理创建的 ! !

注意 : 如果是 junit测试类 , 读取文件的顺序是 :

优先在 testResources 中找 ,

如果找不到 ,然后再去 resources 去找 !

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兀坐晴窗独饮茶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值