1.父工程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"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>demo-base</artifactId><packaging>pom</packaging><version>1.0-SNAPSHOT</version><modules><module>service-api</module><module>service-provider</module><module>service-consumer</module></modules><properties><dubbo.version>2.7.5</dubbo.version></properties><dependencyManagement><dependencies><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo</artifactId><version>${dubbo.version}</version></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-common</artifactId><version>${dubbo.version}</version></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-registry-zookeeper</artifactId><version>${dubbo.version}</version><exclusions><exclusion><groupId>org.apache.dubbo</groupId><artifactId>dubbo-remoting-api</artifactId></exclusion><exclusion><groupId>org.apache.dubbo</groupId><artifactId>dubbo-common</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-registry-nacos</artifactId><version>${dubbo.version}</version></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-rpc-dubbo</artifactId><version>${dubbo.version}</version><exclusions><exclusion><groupId>org.apache.dubbo</groupId><artifactId>dubbo-remoting-api</artifactId></exclusion><exclusion><groupId>org.apache.dubbo</groupId><artifactId>dubbo-common</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-remoting-netty4</artifactId><version>${dubbo.version}</version><exclusions><exclusion><groupId>org.apache.dubbo</groupId><artifactId>dubbo-remoting-api</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-serialization-hessian2</artifactId><version>${dubbo.version}</version><exclusions><exclusion><groupId>org.apache.dubbo</groupId><artifactId>dubbo-common</artifactId></exclusion></exclusions></dependency></dependencies></dependencyManagement><dependencies><!-- 日志配置 --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.16</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.5</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.5</version></dependency><!-- json数据化转换 --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.62</version></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.3</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build></project>

2. 创建提供者模块

2.1 引入依赖

<?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><artifactId>demo-base</artifactId><groupId>org.example</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>service-provider</artifactId><dependencies><dependency><groupId>org.example</groupId><artifactId>service-api</artifactId><version>1.0-SNAPSHOT</version></dependency><!--dubbo相关依赖,因为在父模块中已经指定了版本号,所以子模块不用再指定版本号jdk11使用该版本有冲突,启动不起来,必须切换成jdk8--><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo</artifactId></dependency><!--这个也可以用--><!--<dependency>--><!--    <groupId>org.apache.dubbo</groupId>--><!--    <artifactId>dubbo-spring-boot-starter</artifactId>--><!--    <version>2.7.5</version>--><!--</dependency>--><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-registry-zookeeper</artifactId></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-rpc-dubbo</artifactId></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-remoting-netty4</artifactId></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-serialization-hessian2</artifactId></dependency></dependencies></project>

2.2 编写dubbo的配置类

#程序名称
dubbo.application.name=service-provider#协议使用dubbo协议
dubbo.protocol.name=dubbo#指定dubbo的通信端口(随意指定)
dubbo.protocol.port=20880

2.3 编写提供者的启动类,先写静态内部类作为dubbo的配置类,配置相关属性以及注册中心地址,然后再main方法中创建上下文对象,启动容器即可。

package com.lwb;import org.apache.dubbo.config.RegistryConfig;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;import java.io.IOException;public class DubboMain {public static void main(String[] args) throws IOException {// 创建一个上下文对象AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ProviderConfiguration.class);context.start();// 让容器启动System.in.read(); // 让程序停在这}// 写一个服务提供者的配置类@Configuration@EnableDubbo(scanBasePackages = "com.lwb.service.impl") // 类似组件扫描,也需要指定一个包,这里扫描的是实现类的包@PropertySource("classpath:/dubbo-provider.properties") // 加载配置文件static class ProviderConfiguration{// 加载注册中心的配置方法@Beanpublic RegistryConfig registryConfig(){// 创建一个注册中心的对象RegistryConfig registryConfig = new RegistryConfig();// 赋值注册中心地址  需要启动zookeeperregistryConfig.setAddress("zookeeper://127.0.0.1:2181");return registryConfig;}}
}

---------------------------------------------------------------------------------------------------------------------------------

3.公共API模块只需要编写一个接口,用来调用即可。

--------------------------------------------------------------------------------------------------------------------------------

4.消费者模块

4.1引入依赖,和提供者的依赖一样

4.2编写组件类

package com.lwb.bean;import com.lwb.service.HelloService;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Component;@Component
public class ConsumerComponent {// 引入dubbo的service对象@Referenceprivate HelloService helloService;public String sayHello(String name){return helloService.sayHello(name);}}

4.3编写配置文件

dubbo.application.name=service-consumer#zookeeper地址
dubbo.registry.address=zookeeper://127.0.0.1:2181

4.4编写启动测试类

package com.lwb;import com.lwb.bean.ConsumerComponent;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;import java.io.IOException;public class ConsumerMain {public static void main(String[] args) throws IOException {// 因为这是基于注解+配置类的方式进行dubbo参数的配置AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ConsumerConfiguration.class);context.start();// 获取消费者组件ConsumerComponent service = context.getBean(ConsumerComponent.class);while (true){System.in.read();String world = service.sayHello("world");System.out.println("result===="+world);}}@Configuration@PropertySource("classpath:/dubbo-consumer.properties")@ComponentScan(basePackages = "com.lwb.bean") // spring的组件扫描@EnableDubbo //因为要引入dubbo组件,所以需要该注解static class ConsumerConfiguration{}}

运行效果:

说明:在控制台按几次键,就会打印几次结果。

dubbo的简单搭建相关推荐

  1. php dubbo 接口测试工具,dubbo服务自动化测试搭建

    java实现dubbo的消费者服务编写:ruby实现消费者服务的接口测试:通过消费者间接测试dubbo服务接口的逻辑 内容包括:dubbo服务本地调用环境搭建,dubbo服务启动,消费者部署,脚本编写 ...

  2. python简易版实例_Python3之简单搭建自带服务器的实例讲解

    WEB开发,我们先从搭建一个简单的服务器开始,Python自带服务模块,且python3相比于python2有很大不同, 在Python2.6版本里,/usr/bin/lib/python2.6/ 目 ...

  3. 十分钟用Windows服务器简单搭建DHCP中继代理!!

                         十分钟用Windows服务器简单搭建DHCP中继代理!! 一.什么是中继代理? 大家都知道DHCP分配地址都需要用到IP广播,但是广播是不能在两个网段之间进行 ...

  4. RHEL4- SAMBA服务(四)在x-window下图形界面简单搭建samba服务器

    RHEL4- SAMBA服务(四)在x-window下图形界面简单搭建samba服务器       在<RHEL4- SAMBA服务(一)samba服务的安装与启动>中我讲了如何安装和启动 ...

  5. 简单搭建一个SSM项目(一)

    简单搭建一个用户管理的SSM项目框架,虽然也能用servlet+jdbc搭建更简单的,不过个人感觉工作中更多用的ssm框架项目,这里就简单用ssm来搭建需要的项目吧. 准备工具:eclipse.jdk ...

  6. SSM+Maven+Dubbo+Zookeeper简单项目实战以及易错注意点

    最近为了熟悉Dubbo远程过程调用架构的使用,并结合SSM+Maven整合了简单的一套项目实战 直接看项目结构图 各模块介绍 dubbo-common:存放项目需要的公众类,像查询模型.数据库实体模型 ...

  7. 摄影平铺海报psd模板|简单搭建层次场景海报

    大家肯定都看过那种 平铺的俯视图场景海报 用潮流颜色元素铺满海报 中间空位放上主题文字 看起来似乎很简单的样子 但为什么每次自己设计总觉得缺了点什么 平平无奇,没有什么层次感 事实上设计这种海报并不简 ...

  8. Linux、CentOS简单搭建虚拟主机

    Linux.CentOS简单搭建虚拟主机(仅供参考) 1.       基于域名的虚拟主机 a.       新建目录/usr/local/webapps/123 b.       在123目录下面新 ...

  9. DHCP服务、NFS、vsftp服务的简单搭建

    DHCP服务.NFS.vsftp服务的简单搭建与小实验测试 转载于:https://blog.51cto.com/nmgxjh/1426742

最新文章

  1. 如何强制Visual Studio重新生成aspx / ascx文件的.designer文件?
  2. inavFilter 惯导融合算法
  3. 解决 web.xml is missing and failOnMissingWebXml is set to true 报错
  4. 前端学习(3162):react-hello-react之react插件的安装
  5. ASP.NET MVC 入门5、View与ViewData
  6. Java 画精美图形
  7. Cesium应用篇:3控件(1)Clock
  8. PlantUML 简明教程
  9. java 火星坐标转换,java实现百度坐标的摩卡托坐标与火星坐标转换的示例
  10. 通俗的理解:什么是编程语言?
  11. 看完《我的前半生》的些许感悟
  12. 重新编译使用CMake的旧项目的问题处理
  13. 第一次电话面试失败之后
  14. java宿舍管理系统书籍_Java宿舍管理系统.doc
  15. 计算机相关专业的兼职大总结
  16. android有道翻译代码,Android使用有道翻译API实如今线翻译功能(示例代码)
  17. JS正则表达式可以为空但不可以输入特殊字符可以输入逗号(自用)
  18. BZOJ - 3884 上帝与集合的正确用法
  19. Flash进度条ProgressBar
  20. MySQL数据库场景下的NVMe SSD应用与优化

热门文章

  1. UI设计师职业要求有哪些
  2. wlan:11a/11b/11g/11n/11ac
  3. (实测可用)STM32CubeMX教程-STM32L431RCT6开发板研究串口通信(DMA)
  4. bitnami redmine 4 windows一键式版本安装企业微信插件方法
  5. RabbitMQ学习笔记:惰性队列(Lazy Queues)
  6. CentOS7环境安装oracleRAC集群遇到的问题总结二(执行root.sh报错ORA-15018和ORA-15020)
  7. html 苹果手机输入法,苹果手机输入法的小技巧,你知道几个?最后一个一般人都不知道...
  8. 外貌测试软件准确吗,相貌测试(史上最准的颜值测试)
  9. java斗地主随机发牌_java实现斗地主发牌功能
  10. 根据经纬度坐标获得省市区县行政区划城市名称,自建数据库 java python php c# .net 均适用