問題:在使用dubbo 2.5.3以前的版本@Service來發布服務時,當該服務中有@Transactional ,服務註冊不了html
@Component @Service//這個service註解是dubbo的 @Transactional public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public Mapper<User> getMapper() { return userMapper; } }
緣由:spring事務使用的時候 事務原理:https://www.cnblogs.com/williamw/p/dig-spring-transaction.html,使用了默認的cglib的方式爲service生成代理,而dubbo掃描註解的時候,這個被代理的userService並無dubbo的@service註解,能夠查看一下@servece註解,dubbo定義這個註解的時候不容許子類繼承父類的註解,高版本進行了修改spring
解決方式:api
1.升級dubbo的版本app
2.修改低版本的源碼,可是dubbo admin中會出現springProxy而不是須要的類,能夠修改,在@Service中指定interfaceName,指定發佈的服務的名稱,例:@Service(version = "1.0.0",interfaceName = "com.zl.dubbotest.api.HelloService")
ide
引用:.net
https://www.jianshu.com/p/de5d2540748d代理
https://blog.csdn.net/verne_feng/article/details/53022088#code
歡迎關注做者公衆號交流htm