问题描述:
在配置使用spring的注解声明式事务之后,出现service服务无法发布,导致controller找不到服务
第一种情况:版本原因
阿里巴巴的dubbo2.6.0及以下版本不支持直接使用声明式事务管理
使用apache的dubbo,可以直接使用声明式事务管理
第二种情况:使用阿里巴巴的dubbo
但是需要指以cglib的动态代理创建对象,在事务服务的@service注解中指定interfaceClass属性
原因分析
在service类上加入事务注解后,Spring会为此类基于JDK动态代理技术创建代理对象,创建的代理对象完整类名为com.sun.proxy.$Proxy35(最后两位数字不是固定的),导致Dubbo在进行包匹配时没有成功(因为我们在发布服务时扫描的包为com.yuechuan.service(自定义的service服务包路径)),所以后面真正发布服务的代码没有执行。
修改对应service类,在Service注解中加入interfaceClass属性,值为service服务类接口.class,作用是指定服务的接口类型.
否则会导致发布的服务接口为SpringProxy,而不是对应Service接口
————————————————
版权声明:本文为CSDN博主「佐月儿」的原创文章,遵循CC 4.0 BY-SA版权协议,
原文链接:https://blog.csdn.net/csdn_zuoyueer/article/details/103413307