2021-12-10 关于SpringBoot项目调用dubbo接口的笔记

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 2021-12-10 关于SpringBoot项目调用dubbo接口的笔记

以下纯个人经历,不成体系,如有需求需要百度;具体步骤

一、pom.xml文件导入依赖

<!-此处是引入需要导入的jar包,需要调用的dubbo接口是放在这个jarbao下面的-->
  <dependency>
      <groupId>com.xxx.xxx</groupId>
      <artifactId>xxx-req-management-api</artifactId>
      <version>1.0.0-SNAPSHOT</version>
    </dependency>
      <!--  alibaba的dubbo包,也可以用apacha的  -->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>dubbo</artifactId>
      <version>2.6.5</version>
    </dependency>
  <!--  ZooKeeper主要服务于分布式系统,做统一配置管理、统一命名服务、分布式锁、集群管理等杂活儿,简单说就是个分布式框架的”管家“-->
    <dependency>
      <groupId>org.apache.zookeeper</groupId>
      <artifactId>zookeeper</artifactId>
      <version>3.5.6</version>
    </dependency>
    <!--  个人理解:也是一个用到操作Zookeeper的jar包 -->
    <dependency>
      <groupId>com.101tec</groupId>
      <artifactId>zkclient</artifactId>
      <version>0.10</version>
    </dependency>
  <!--  提供了一个抽象级别更高的API,来操作Zookeeper  -->
    <dependency>
      <groupId>org.apache.curator</groupId>
      <artifactId>curator-framework</artifactId>
      <version>5.1.0</version>
    </dependency>

二、编写配置信息

在SSM的配置文件里面写好注册中心的地址,以及端口号,可以通过注入的方式动态管理dev、prd访问地址;
在项目名.config目录下的配置文件写入信息,(我的是applicatin-dev.properties文件)如:
#dubbo的zookeeper配置
xxx.dubbo.registry.port=8090
xxx.dubbo.registry.address=zookeeper://168.63.65.196:2182?backup=168.63.65.197:2182,168.63.65.198:2182
注:多ip需要用逗号隔开

三、编写位置的xml文件

注:我的xmu文件名是dubbo-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://code.alibabatech.com/schema/dubbo
    http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
    <!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
    <dubbo:application name="agiletp-consumer"/>
<!--配置注册中心的地址,可以百度以下参数的意思,参数是通过第二步的配置文件注入进来的-->
    <dubbo:registry id="agiletp-registry" address="${xxx.dubbo.registry.address}" port="${xxx.dubbo.registry.port}" timeout="30000" check="false"/>
    <!--这一步是将需要访问的jar包中的暴露的Service接入到当前项目-->
    <dubbo:reference id="dxxxProjectExternalService" interface="com.xxx.dpmp.external.api.DpmpProjectExternalService"
                     registry="agiletp-registry"
                     timeout="60000"
                     check="false"
                     reconnect="false"
                     version="1.0.0"
                     retries="0"/>
</beans>

四、将dubbo配置在SpringBoot启动类上注入

config目录下:根据路径访问dubbo-config.xml文件
@ImportResource({"file:config/dubbo-config.xml"})
resource路径下:根据路径访问dubbo-config.xml文件
@ImportResource("classpath:dubbo-config.xml")
classpath是指springboot项目的resourse路径

五、注入Service,调用方法即可

到这一步已经完成了dubbo接口配置的基本步骤,剩下的jar调用就和普通的service方法一致了,卓阳注解注入service

   @Autowired
    private DxxxProjectExternalService dxxxProjectExternalService;
相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
2月前
|
存储 算法 安全
SpringBoot 接口加密解密实现
【10月更文挑战第18天】
|
1月前
|
Java 应用服务中间件
SpringBoot获取项目文件的绝对路径和相对路径
SpringBoot获取项目文件的绝对路径和相对路径
106 1
SpringBoot获取项目文件的绝对路径和相对路径
|
1月前
|
分布式计算 关系型数据库 MySQL
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型 图像处理 光通信 分布式计算 算法语言 信息技术 计算机应用
57 8
|
1月前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
44 2
|
1月前
|
Dubbo Java 应用服务中间件
深入探讨了“dubbo+nacos+springboot3的native打包成功后运行出现异常”的原因及解决方案
本文深入探讨了“dubbo+nacos+springboot3的native打包成功后运行出现异常”的原因及解决方案。通过检查GraalVM版本兼容性、配置反射列表、使用代理类、检查配置文件、禁用不支持的功能、查看日志文件、使用GraalVM诊断工具和调整GraalVM配置等步骤,帮助开发者快速定位并解决问题,确保服务的正常运行。
53 1
|
2月前
|
JavaScript 前端开发 Java
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
这篇文章详细介绍了如何在前端Vue项目和后端Spring Boot项目中通过多种方式解决跨域问题。
402 1
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
|
1月前
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
58 2
|
1月前
|
前端开发 Java Spring
SpringBoot项目thymeleaf页面支持词条国际化切换
SpringBoot项目thymeleaf页面支持词条国际化切换
77 2
|
1月前
|
JSON Java 数据库
SpringBoot项目使用AOP及自定义注解保存操作日志
SpringBoot项目使用AOP及自定义注解保存操作日志
53 1
|
1月前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。