SpringBoot多数据源在Junit下出现不切换的情况

在大多数使用单测的情况下,我们都会继承BaseServiceTest,来进行相关事务启动。但BaseServiceTest又继承了AbstractTransactionalJUnit4SpringContextTests 这个是Spring测试事务处理并没有进行GGLIB代理,也就是说你所有的

AOP启动其实都是在AbstractTransactionalJUnit4SpringContextTests事务开启之后才进行拦截通知的,这样就导致

在进行数据源切换的时候,AbstractTransactionalJUnit4SpringContextTests会提前开启事务从而导致AOP上的拦截滞后从而报错。来看图:

 

从图可以看出在开启事务的时候当前数据源还是在使用的default数据源,没有切换。修正方法 如果继续使用Junit进行测试,那么去掉AbstractTransactionalJUnit4SpringContextTests的集成,单独使用一个基类来进行启动。

直接在你的具体测试类里进行继承实现:

这样就可以了

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

陈晓伊

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

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

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

打赏作者

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

抵扣说明:

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

余额充值