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调用接口的位置低。即下图所示为正确配置:

这里写图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/556734.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring boot配置mybatis和事务管理

spring boot配置mybatis和事务管理 一、spring boot与mybatis的配置 1.首先,spring boot 配置mybatis需要的全部依赖如下&#xff1a; <!-- Spring Boot 启动父依赖 --> <parent><groupId>org.springframework.boot</groupId><artifactId>spr…

android hud sdk,Android HUD SDK | 百度地图API SDK

简介为了给用户提供更安全优质的服务&#xff0c;LBS开放平台针对Android平台的SDK产品引入Key认证机制&#xff0c;用户在使用之前需要先申请配置Key&#xff0c;并在程序相应位置填写您的Key。Key机制&#xff1a;每个Key仅且唯一对于1个应用验证有效&#xff0c;即对该Key配…

spring boot配置druid(德鲁伊)

spring boot配置druid(德鲁伊) 关于druid的介绍请看 阿里巴巴温少访谈 1.引入相关依赖&#xff0c;全部依赖是上一篇spring bootmybatis依赖的基础上&#xff0c;再加上下边的依赖&#xff0c;如下&#xff1a; <!-- Druid数据库连接池组件 --> <dependency><…

spring boot----简单入门

Spring Boot其实就是spring,为了简便spring框架的搭建&#xff0c;快速开发项目而推出的另一种方式。使用spring boot&#xff0c;搭建框架将变得特别快。可以有更多的时间在代码性能上优化了。 一、Spring Boot个人感觉的优点: ​ 1&#xff09;搭建一个简单运行的框架很快&…

android中给button加图标,Android,如何在我的代码中的TabButton中添加图标

在这里,我制作了5个工作正常的Tab按钮,但现在我想为每个Tab添加图标,如何相对于Tab按钮添加Tab图标….请指导/帮助我.我第一次使用stackOverflow,请告诉我在发布此代码时是否错过了任何步骤…提前致谢package com.vishesh.soapbox;import android.app.TabActivity;import andro…

android js 代码混淆工具,好用的JS(Javascript)混淆加密工具-HDS JSObfuscator 2.14版

好用的JS(Javascript)混淆加密工具-HDS JSObfuscator 2.14版书法字体2017.06.23css压缩分享一款好用的JS混淆加密工具:HDS JSObfuscator 2.14版&#xff0c;HDS JSObfuscator兼顾了JS压缩、JS混淆和JS加密三大功能。js加密工具的主要作用就是为了保护Javascript代码&#xff0c…

Maven 建立父子项目和跨项目调用内容的步骤

使用Maven管理项目&#xff0c;同时我们是做微服务&#xff0c;所以对于微服务项目来说&#xff0c;使用Maven建立起一个父子项目这种关系&#xff0c;很方便管理&#xff08;只是个人感觉&#xff09; 设计层面 &#xff08;1&#xff09;服务端和客户端肯定是分开写的&…

android支付宝运动修改器,一键修改支付宝运动步数-修改支付宝运动步数工具下载不要root手机版-西西软件下载...

修改支付宝运动步数工具是一款支付宝运动步数修改工具和教程,QQ微信也可以修改&#xff0c;最近在支付宝中推出了各种运动活动&#xff0c;很多朋友表示想要直接刷步数&#xff0c;不想去亲自运动来增加步数。那么下面手机乐园水银师小编就为大家介绍了支付宝快速刷步数的方法&…

spring boot配置tomcat部署

spring boot本身默认为jar包运行&#xff0c;可以改为war包&#xff0c;然后运行在tomcat里 具体修改的步骤如下&#xff1a; 1.在pom.xml文件里添加需要的依赖&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>s…

android同步aar到jcenter,android上传aar到jcenter

一、jcenter配置1、jcenter官网注册账号官网地址&#xff1a;https://bintray.com注册页面&#xff1a;2、注册成功记录API Key 鼠标放在账户名上&#xff0c;点击Edit Profile,选择API Key,在这里是需要输入登录密码的&#xff0c;然后就可以看到你的key3、创建仓库点击此处进…

spring boot配置logback日志

spring boot配置logback日志 在上一篇spring boot入门里提过&#xff0c;Spring Boot默认的日志打印是logback,所以配置logback日志会很简单&#xff0c;但是也有注意的地方。 本次配置日志的需求 日志需要控制台打印和文件打印两种。其中文件打印按照日志级别分别保存到各自…

springboot-项目获取resources下文件的方法

spring项目获取resources下文件的方法 最近写读取模板文件做一些后续的处理&#xff0c;将文件放在了项目的resources 下&#xff0c;发现了一个好用的读取方法&#xff1a; 比如上边是你需要读取的文件&#xff1a; 读取的方法如下&#xff1a; //File file ResourceUtils…

几款经典好用的Android,经典实用 Android十款生活必备软件推荐

【IT168 应用】在众多Android应用中有许多优秀的生活方式软件&#xff0c;它们为我们的生活提供了各方面的服务&#xff0c;例如像查看天气预报、搜索周边美食、提醒重要事件等等。大家已经慢慢的熟悉了移动互联生活&#xff0c;尤其是工作中的白领&#xff0c;手机更成为了他们…

springboot配置单独的参数文件

一、介绍 是不是经常用Value注解&#xff1f;用过springboot的都知道它是从application.properties文件中引入某个变量的值&#xff0c;是不是已经灰常熟悉了&#xff1f; 默认在springboot启动后&#xff0c;加载application.properties文件&#xff0c;通过Value("${}&…

html cols跨两列,html – CSS奇怪,甚至有2个cols

一个模式中有四篇文章,因此4n的一些偏移应该可以解决问题.这似乎工作(Fiddle)&#xff1a;article {color:blue}article:nth-child(4n-1), article:nth-child(4n-2) {color:green}如果你不喜欢减去,加上也是一样的(Fiddle)&#xff1a;article {color:blue}article:nth-child(4…

nacos初探--作为配置中心

什么是nacos Nacos 支持基于 DNS 和基于 RPC 的服务发现&#xff08;可以作为springcloud的注册中心&#xff09;、动态配置服务&#xff08;可以做配置中心&#xff09;、动态 DNS 服务。 官方介绍是这样的&#xff1a; Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提…

教育部统考 计算机应用,9月教育部统考《计算机应用基础》试卷一附答案.doc

9月教育部统考《计算机应用基础》试卷一附答案2015年9月教育部统考《计算机应用基础》试卷一附答案一、单选题1.第三代计算机采用______作为主要的电子器件。A.电子管B.晶体管C.大规模集成电路D.小规模集成电路答案&#xff1a;D2.______领域是计算机应用中最诱人、也是难度大且…

Module build failed: Error: Cannot find module ‘node-sass‘ Require stack报错解决

Module build failed: Error: Cannot find module ‘node-sass’ Require stack报错解决 异常信息 解决方法 设置用淘宝镜像下载 npm install --save-dev node-sass --registryhttps://registry.npm.taobao.org --disturlhttps://npm.taobao.org/dist --sass-binary-sitehtt…

html5显示用户已读取文章,如何查看公众号文章是谁阅读

如何查看公众号文章是谁阅读内容导读&#xff1a;目前微信公众号并没有开放这个权限&#xff0c;不仅不能查看谁阅读了文章&#xff0c;也不能看到粉丝的微信号。这主要是考虑到微信用户的隐私&#xff0c;如果都能看到的话&#xff0c;某些公众号就可能去添加这些微信用户&…

npm的镜像替换淘宝

1.得到原本的镜像地址 npm get registry > https://registry.npmjs.org/2.设成淘宝的 npm config set registry http://registry.npm.taobao.org/yarn config set registry http://registry.npm.taobao.org/3.换成原来的 npm config set registry https://registry.npmj…