在springboot应用中使用dubbo-spring-boot-starter-程序员宅基地

技术标签: maven  dubbo  dubbo-spring-boot-starter  分布式  springboot  

开篇

dubbo-spring-boot-starter由于比较新,也没有详实的官方资料,网上乱七八糟各种抄袭的教程很多都不靠谱,让我踩了很多很多坑。在这里我将dubbo-spring-boot-starter的使用过程如实记录如下,突出实用,所有代码都经过验证,在github可以找到源码。

一. 项目结构介绍

项目为一个图书管理系统,前端使用vue.js单独建立工程,后台采用maven多模块的形式,父工程下建立子模块,模块名忽略掉前缀分别为controller(控制层),service(服务层),serviceI(服务接口层),dao(数据库操作层)。
controller层作为consumer,service层作为provider
项目结构如图:
在这里插入图片描述
这些模块之间具有严格的依赖关系:

  1. controller只依赖于serviceI
  2. service只依赖于serviceI和dao
  3. serviceI和dao对其它模块没有依赖

父工程中引入dubbo-spring-boot-starter,版本为1.0.0。需要注意的是,要区分groupId

<groupId>com.alibaba.boot</groupId>

<groupId>com.alibaba.spring.boot</groupId>

这两个包内都有spring-boot-starter-parent,但并不是同一个组件,版本号也完全独立,之间的区别暂时还没研究,我们使用的是后者:

<dependency>
    <groupId>com.alibaba.spring.boot</groupId>
    <artifactId>dubbo-spring-boot-starter</artifactId>
    <version>1.0.0</version>
</dependency>

父工程的完整pom文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
    </parent>
    
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.bocsoft.library</groupId>
    <artifactId>library-boot</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>

    <modules>
        <module>library-boot-controller</module>
        <module>library-boot-serviceI</module>
        <module>library-boot-service</module>
        <module>library-boot-dao</module>
    </modules></
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_34784720/article/details/84628254

智能推荐

Flink基础系列5-Flink 配置文件参数_sql-client-defaults.yaml-程序员宅基地

文章浏览阅读1.6w次。文章目录一.Flink配置文件概述1.1 基础配置1.2 高可用性配置1.3 容错和检查点 配置1.4 web 前端配置1.5 高级配置1.6 Flink 集群安全配置1.7 Zookeeper 安全配置1.8 HistoryServer1.9 masters1.10 slaves1.11 zoo.cfg1.12 日志配置1.13 sql-client-defaults.yaml参考:一.Flink配置文件概述安装目录下主要有 flink-conf.yaml 配置、日志的配置文件、zk 配置、Flink_sql-client-defaults.yaml

探索Fofa-hack:一款强大的网络数据搜索工具-程序员宅基地

文章浏览阅读368次,点赞5次,收藏3次。探索Fofa-hack:一款强大的网络数据搜索工具项目地址:https://gitcode.com/Cl0udG0d/Fofa-hack在网络安全和渗透测试的世界里,数据搜索是至关重要的一个环节。Fofa-hack 是一个基于Fofa API开发的工具,旨在帮助安全研究人员、开发者以及爱好者更有效地发现和定位目标信息。本文将详细介绍Fofa-hack的功能、技术实现和应用场景,以期吸引更多用户...

钉钉小程序怎么实现日期和时间段的选择-程序员宅基地

文章浏览阅读675次。1、访问日期是不可以用picker的,这样会重复出现弹框。2、我在这里使用的是view。就可以实现日期的选择了。

sensor简介-程序员宅基地

文章浏览阅读617次。http://wenku.baidu.com/view/404957da5022aaea998f0ffa.html_sensor

[UVM]一文搞懂UVM callback-程序员宅基地

文章浏览阅读2.2k次,点赞6次,收藏49次。一文搞懂UVM callback 前言:在UVM验证平台中,callback的最大用处就是提高验证平台的复用性。很多情况下,我们期望在一个项目中开发的验证平台能够用于另外一个项目。但是,通常来说,完全的复用是比较难实现的,两个不同的项目之间或多或少会有一些差异。如果把两个项目不同的地方使用callback来做,而..._uvm callback

海龟交易法则主图技术指标公式_海龟策略公式-程序员宅基地

文章浏览阅读5.6k次。海龟交易法则采用的主图技术指标公式:MYATR:=MA(ATR,14);长周期高点:REF(HHV(H,55),1),COLORGREEN;长周期低点:REF(LLV(L,20),1),COLORLIGREEN;周期高点:REF(HHV(H,20),1),COLORMAGENTA;周期低点:REF(LLV(L,10),1),COLORLIMAGENTA;准备多头:C+MYATR,COLORWHITE;准备空头:C-MYATR,COLORLIGRAY;平空开多:=(H > 周期高点);_海龟策略公式

随便推点

怎么用matlab剔除数据的异常值(3σ准则)_3sigma原则matlab-程序员宅基地

文章浏览阅读5.2w次,点赞27次,收藏379次。参考:https://blog.csdn.net/weixin_30633405/article/details/951770093σ准则又称为拉依达准则,它是先假设一组检测数据只含有随机误差,对其进行计算处理得到标准偏差,按一定概率确定一个区间,认为凡超过这个区间的误差,就不属于随机误差而是粗大误差,含有该误差的数据应予以剔除。且3σ适用于有较多组数据的时候。这种判别处理原理及方法仅局限于对正态或近似正态分布的样本数据处理,它是以测量次数充分大为前提的,当测量次数较少的情形用准则剔除粗大误_3sigma原则matlab

导入PYQT5不能使用的坑_pdroid3已经导入pyqt5怎么不管用-程序员宅基地

文章浏览阅读5.1k次,点赞4次,收藏17次。如图:import进来之后里面的类全都不能用是因为这个引用路径下面有中文。改成英文的就不报错了,如果还是报错,那就新建一个项目命名成英文_pdroid3已经导入pyqt5怎么不管用

手推线性模型及最小二乘法(房价预测实例)_基于最小二乘法的房价预测实验报告-程序员宅基地

文章浏览阅读1.4k次,点赞4次,收藏24次。手推线性模型及最小二乘法(房价预测实例)线性模型及最小二乘法推导房价预测实例Reference线性模型及最小二乘法推导房价预测实例生成数据#生成数据import numpy as np#生成随机数np.random.seed(1234)x = np.random.rand(500,3)#构建映射关系,模拟真实的数据待预测值,映射关系为y = 4.2 + 5.7*x1 + 1..._基于最小二乘法的房价预测实验报告

多文件使用全局变量时extern的规范用法_extern变量多个文件中修改-程序员宅基地

文章浏览阅读494次。关键字extern用来声明变量或者函数是一个外部变量或者外部函数,也就是说告诉编译器是在其他文件中定义的,编译的时候不要报错,在链接的时候按照字符串寻址可以找到这个变量或者函数。(函数默认是外部类型的,不需要显示声明,但是变量必须,如果想把一个函数声明为只在本文件范围有效,那么可以用static来说明) 在某个头文件,比如A.h中定义了全局变量比如int a;,那么在其他文件中的函数调用变量a的时候需要在对应头文件或者定义文件中(保证在使用这个变量前)使用extern int a;..._extern变量多个文件中修改

为 OpenBMC 添加一个新的系统_openbmc对meta名字有要求吗-程序员宅基地

文章浏览阅读773次,点赞15次,收藏27次。在上一篇文章中向大家介绍了OpenBMC的是什么以及它的作用和应用场景,并且以一个自带的示例平台romulus展示了从下载源码包开始到启动系统并访问Web控制页面的整体构建流程。通过前文已经了解到如何为已有的平台构建系统镜像,下面我们来探索一下如何为我们自己的平台构建OpenBMC的系统镜像。_openbmc对meta名字有要求吗

闹钟+秒表+倒计时三合一_时钟和倒计时同时显示-程序员宅基地

文章浏览阅读652次。这个是一个可以实现闹钟,计时,倒计时的安卓简单APP。特别提醒,闹钟部分,国产手机会把后台闹钟服务功能杀掉,延迟几分钟闹甚至不闹。没办法国产手机为了对付某些狗血APP只能强制性。。。倒计时可以在后台运行,但是秒表部分只能在当前界面运行,重新进入就清零了。_时钟和倒计时同时显示

推荐文章

热门文章

相关标签