spring boot配置dubbo注意事项
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注意事项相关推荐
- spring boot配置dubbo(XML)
上一篇写的是spring boot在自己的properties配置文件中简单配置dubbo的步骤,那种配置有很多的功能(比如超时时间.是否检查)等等,配置起来也挺麻烦的,而我们也习惯传统的那种XML形 ...
- spring boot配置dubbo(properties)
spring boot与dubbo配置(properties) dubbo和zookeeper配合使用,具体的它们之间的配置这里不说了. 一.spring boot与dubbo配置有两种方式: 1)s ...
- Spring boot配置Dubbo三种方式
方式一 使用注解的方式 导入dubbo-starter 在application.properties配置属性 使用@Service暴露服务 使用@Reference引用服务 使用@EnableDub ...
- Spring Boot集成Dubbo多模块项目创建与配置
目录 概述 使用工具 环境搭建 1.父模块创建 2.创建子模块 多模块项目配置 一. 父模块pom配置 1.继承设置 2.使用dependencyManagement管理依赖版本号 3.使用prope ...
- spring boot配置logback日志
spring boot配置logback日志 在上一篇spring boot入门里提过,Spring Boot默认的日志打印是logback,所以配置logback日志会很简单,但是也有注意的地方. ...
- spring boot 整合Dubbo/Zookeeper
spring boot 整合Dubbo/Zookeeper 只是一个简单的整合demo,只做思路分析叙述,具体功能不做描述. 一.技术介绍 •ZooKeeper ZooKeeper 是一个分布式的,开 ...
- 初次创建spring boot流程和注意事项
新手初次创建spring boot流程和注意事项 一.项目整合与部署存在的问题 1.1 SSM手动整合存在的问题 SSM整合步骤多.配置繁琐 项目进行服务器部署步骤繁琐 1.2 如何简化这些繁琐的配置 ...
- Spring Boot 配置元数据指南
点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | 遗失的拂晓 来源 | 公众号「锅外的大佬」 1. 概览 在编写 Spring Bo ...
- java多个数据库数据进行访问_通过Spring Boot配置动态数据源访问多个数据库的实现代码...
之前写过一篇博客<Spring+Mybatis+Mysql搭建分布式数据库访问框架>描述如何通过Spring+Mybatis配置动态数据源访问多个数据库.但是之前的方案有一些限制(原博客中 ...
最新文章
- php 插入 mysql_php插入mysql数据返回id的方法
- pycharm mysql安装_PyCharm安装连接MySQL
- fit,fit_generator的使用区别
- table: github.com/astaxie/beego/orm.Ormer not found
- 给谷歌浏览器安装vue调试工具:vue-devtools
- Java有哪些常用的转换类,JavaSE——常用类、类型转换
- 面试小结170308
- 关于BeanUtils.copyProperties的用法和优缺点
- thinkpython2e电子书下载_《Think Python 2e》中译版电子书分享
- githua 账号合并_如何合并他人的分支 github
- 华为ensp中AC下发配置
- 破而后立-08年年终记
- 【51单片机】74HC595串转并 使用
- GBT 31000-2015 社会治安综合治理基础数据规范 数据项 编码
- 什么是面向对象?谈谈你对面向对象的理解
- 利用朴素贝叶斯算法解决“公园凉鞋问题”
- Xcode8使用出现bundleid: com.xxx.xxx, enable_level: 0, persist_level: 0, propagate_with_acti
- 计算机毕业设计JAVA二手物品置换平台mybatis+源码+调试部署+系统+数据库+lw
- 手把手教你配置苹果APNS推送服务
- Xmanager 5安装及使用
热门文章
- substr php,PHP substr() 函数
- 小程序 || 语句_C ++开关语句| 查找输出程序| 套装1
- oracle清理告警日志,Oracle 跟踪/告警/监听日志的清理脚本
- html中电子邮件怎么写,谈html mailto(电子邮件)实际应用
- igs无法分配驱动器映射表_硬盘无法使用,用DiskPart进行分区和格式化,非常简单...
- 在Python中使用OpenCV裁剪图像
- C语言小白——数组与字符串
- 《数据结构与算法分析-C语言描述》习题2.6
- 基于SpringMVC进行REST服务开发
- CSS3动画和VUE动画整理