栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

解决SpringBoot自定义注解在方法上失效的问题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

解决SpringBoot自定义注解在方法上失效的问题

上次对项目进行了多数据源改造,已经成功实现,但在部分接口上发现了问题,有一些接口一旦用了两个数据源,那么就只会在调用的接口实现方法,也就是主方法上的注解成效,而内部调用的方法上的自定义注解不生效,导致我这个接口需要有两个数据源的数据进行业务处理,但就报错说找不到对应的表那些。 

后面参考看了这篇博客解决内部调用自定义注解的方法失效问题_我两年升高级的博客-CSDN博客_自定义注解失效才了解到,AOP在service方法的内部调用时,无法进入切面处理。。。现在就把这个问题记录下来,防止后面的同学踩坑。

首先,需要在启动类上加上注解

@EnableAspectJAutoProxy(proxyTargetClass = true, exposeProxy = true)

看了一下这个注解的源码,注解后面的参数true也要加上,因为默认全是false。。 

 

接下来就是在我们的内部调用方法,加上判断,在调用内部方法也用当前这个代理去处理。

if (null != AopContext.currentProxy()) {
	((MyService)AopContext.currentProxy()).methodB();
} else {
    methodB();
}

这样就解决了,成功实现在一个接口上用两个数据源的数据进行业务处理的逻辑,完美

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1014825.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号