使用Dubbo注解与spring事物注解冲突解决方法

使用Dubbo注解与spring事物注解冲突解决方法
1.ServiceImpl类中注解配置服务实现类上使用的Service注解是Dubbo提供的,用于对外发布服务

import com.alibaba.dubbo.config.annotation.Service;

2.ServiceImpl引用Dubbo service注解的属性必须声明interfaceClass属性

@Service(interfaceClass=CheckItemService.class)

3.Controller注解注Service服务时使用的是Dubbo提供的@Reference注解不用@Autowired ,@Reference 用在消费端,表明使用的是服务端的什么服务。注入的是分布式的远程服务的对象。在集群负载均衡时,Dubbo 提供了多种均衡策略(包括随机、轮询、最少活跃调用数:性能好的多调用些、一致性Hash:商品id%集群的总数==0-2),缺省为random随机调用。将check值改为false来关闭检查依赖的服务是否可用。

@Reference(check = false,loadbalance = "random")

4.Spring事物注解proxy-target-class设置为ture

<!--
        开启事务控制的注解支持
        注意:此处必须加入proxy-target-class="true",
              需要进行事务控制,会由Spring框架产生代理对象,
              Dubbo需要将Service发布为服务,要求必须使用cglib创建代理对象。
    -->
    <tx:annotation-driven transaction-manager="transactionManager"
                          proxy-target-class="true"/>
</beans>

你可能感兴趣的:(SSM)