spring boot配置dubbo注意事项

通过前两篇文章,知道了spring boot配置dubbo有两种方式。具体请回顾前两篇文章吧。

现在主要是说下spring boot在自己的application.properties 文件里配置dubbo内容,这种方式遇到的问题。

问题一:dubbo接口发布不成功。

原因一:注意application.properties 文件中配置的,dubbo扫描发布接口包是否正确,即:

#这是你要发布到dubbo的接口所在包位置
spring.dubbo.scan=test.spring.dubboService

这里的test.spring.dubboService包下,就是要发布的dubbo接口所放的位置。

原因二:所发布接口的实现类包位置一定要比接口位置低。即正确配置如下图所示:

原因三:发布接口的实现类上是否忘记添加com.alibaba.dubbo.config.annotation.Service@Service 注解。

原因四:发布接口实现类除了有@Service 注解,是否还存在事务注解@Transactional ,原因是alibaba的@Service 注解与事务的注解,不能共用,去掉事务注解即可。(详情请看下一个问题)。

问题二:dubbo发布的接口不能再添加事务注解@Transactional

原因:是alibaba的@Service 注解与事务的注解,不能共用

解决方法有三个:

1. 方法一:修改alibaba的@Service 注解,具体办法请参考这里,这种只是让大家看下,最好别用,因为谁闲着没事去修改源代码。

2. 方法二:可以将dubbo发布接口和添加注解的接口分开,两者之间有个调用关系即可,详情请看下图:

上图将发布的接口和访问数据库的接口分离,即将alibaba的@Service 注解,加到TestDubboServiceImpl 上,然后在该实现类中,再引入TestService 接口,然后进入到TestServiceImpl ,将事务注解添加到TestServiceImpl 类中即可,这样就解决了,@Service@Transactional 的分离。具体如下:

import com.alibaba.dubbo.config.annotation.Service;
import test.spring.dubboService.TestDubboService;
import test.spring.localService.TestService;@Service
public class TestDubboServiceImpl implements TestDubboService {@Autowired //引入本地TestService接口TestService testService;@Overridepublic String getName(String name) {// TODO Auto-generated method stubreturn testService.getName(name);}
}

TestService的实现类如下:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;//这里的注解就是这个
import test.spring.localService.TestService;
@Service
public class TestServiceImpl implements TestService{@AutowiredTestMapper testMapper;@Override@Transactionalpublic String getName(String name) {//具体的查询数据库的逻辑   return testMapper.selectByName(name);;}}

3.方法三:将dubbo的配置由在spring boot 的application.properties文件配置改为传统的那种dubbo xml形式配置。也不会造成冲突。因为传统的dubbo xml形式配置,不用alibaba的那个@Service 注解。

问题三:dubbo消费者调用接口不成功

原因一:还是application.properties,是否没有配置,或配置位置错误。

#这是你要调用的dubbo的接口所在包位置
spring.dubbo.scan=test.spring.dubboService

原因二:一般我们的消费者调用都是在controller调用,也就是下图所示

import org.springframework.web.bind.annotation.RestController;
import com.alibaba.dubbo.config.annotation.Reference;@RestController
public class TestController {@ReferenceTestDubboService testDubboService;@RequestMapping(value="abc/akf",method=RequestMethod.GET)public String abc(String name){  return testDubboService.getName(name);}
}

这种情况就要考虑是否controller位置比dubbo调用接口的位置低。即下图所示为正确配置:

spring boot配置dubbo注意事项相关推荐

  1. spring boot配置dubbo(XML)

    上一篇写的是spring boot在自己的properties配置文件中简单配置dubbo的步骤,那种配置有很多的功能(比如超时时间.是否检查)等等,配置起来也挺麻烦的,而我们也习惯传统的那种XML形 ...

  2. spring boot配置dubbo(properties)

    spring boot与dubbo配置(properties) dubbo和zookeeper配合使用,具体的它们之间的配置这里不说了. 一.spring boot与dubbo配置有两种方式: 1)s ...

  3. Spring boot配置Dubbo三种方式

    方式一 使用注解的方式 导入dubbo-starter 在application.properties配置属性 使用@Service暴露服务 使用@Reference引用服务 使用@EnableDub ...

  4. Spring Boot集成Dubbo多模块项目创建与配置

    目录 概述 使用工具 环境搭建 1.父模块创建 2.创建子模块 多模块项目配置 一. 父模块pom配置 1.继承设置 2.使用dependencyManagement管理依赖版本号 3.使用prope ...

  5. spring boot配置logback日志

    spring boot配置logback日志 在上一篇spring boot入门里提过,Spring Boot默认的日志打印是logback,所以配置logback日志会很简单,但是也有注意的地方. ...

  6. spring boot 整合Dubbo/Zookeeper

    spring boot 整合Dubbo/Zookeeper 只是一个简单的整合demo,只做思路分析叙述,具体功能不做描述. 一.技术介绍 •ZooKeeper ZooKeeper 是一个分布式的,开 ...

  7. 初次创建spring boot流程和注意事项

    新手初次创建spring boot流程和注意事项 一.项目整合与部署存在的问题 1.1 SSM手动整合存在的问题 SSM整合步骤多.配置繁琐 项目进行服务器部署步骤繁琐 1.2 如何简化这些繁琐的配置 ...

  8. Spring Boot 配置元数据指南

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | 遗失的拂晓 来源 | 公众号「锅外的大佬」 1. 概览 在编写 Spring Bo ...

  9. java多个数据库数据进行访问_通过Spring Boot配置动态数据源访问多个数据库的实现代码...

    之前写过一篇博客<Spring+Mybatis+Mysql搭建分布式数据库访问框架>描述如何通过Spring+Mybatis配置动态数据源访问多个数据库.但是之前的方案有一些限制(原博客中 ...

最新文章

  1. php 插入 mysql_php插入mysql数据返回id的方法
  2. pycharm mysql安装_PyCharm安装连接MySQL
  3. fit,fit_generator的使用区别
  4. table: github.com/astaxie/beego/orm.Ormer not found
  5. 给谷歌浏览器安装vue调试工具:vue-devtools
  6. Java有哪些常用的转换类,JavaSE——常用类、类型转换
  7. 面试小结170308
  8. 关于BeanUtils.copyProperties的用法和优缺点
  9. thinkpython2e电子书下载_《Think Python 2e》中译版电子书分享
  10. githua 账号合并_如何合并他人的分支 github
  11. 华为ensp中AC下发配置
  12. 破而后立-08年年终记
  13. 【51单片机】74HC595串转并 使用
  14. GBT 31000-2015 社会治安综合治理基础数据规范 数据项 编码
  15. 什么是面向对象?谈谈你对面向对象的理解
  16. 利用朴素贝叶斯算法解决“公园凉鞋问题”
  17. Xcode8使用出现bundleid: com.xxx.xxx, enable_level: 0, persist_level: 0, propagate_with_acti
  18. 计算机毕业设计JAVA二手物品置换平台mybatis+源码+调试部署+系统+数据库+lw
  19. 手把手教你配置苹果APNS推送服务
  20. Xmanager 5安装及使用

热门文章

  1. substr php,PHP substr() 函数
  2. 小程序 || 语句_C ++开关语句| 查找输出程序| 套装1
  3. oracle清理告警日志,Oracle 跟踪/告警/监听日志的清理脚本
  4. html中电子邮件怎么写,谈html mailto(电子邮件)实际应用
  5. igs无法分配驱动器映射表_硬盘无法使用,用DiskPart进行分区和格式化,非常简单...
  6. 在Python中使用OpenCV裁剪图像
  7. C语言小白——数组与字符串
  8. 《数据结构与算法分析-C语言描述》习题2.6
  9. 基于SpringMVC进行REST服务开发
  10. CSS3动画和VUE动画整理