在Dubbo生产者端暴露服务的方式有两种,一种是传统的xml配置标签方式,还有一种是使用@Service注解方式。
在使用@Service注解的过程中,踩了很多坑,给大家分享一下。
会导致@Service注解无效的原因大致有以下几点:
1、@Service注解的业务逻辑对象中有@Transactional注解。因为目前dubbo版本中,被事务代理的业务逻辑对象不能通过使用@Service注解暴露服务,因为被cglib或者Java Proxy代理的类不能被dubbo的annotation扫描到@Service注解。
2、未添加dubbo的annotation标签。
<dubbo:annotation package="com.yykj.mall.service"/>
3、使用了错误的@Service注解,Spring中也有@Service注解,所以要看清楚@Service注解是否是dubbo包中的。