快速启动

Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。

服务提供者

定义服务接口: (该接口需单独打包,在服务提供方和消费方共享)

DemoService.java
package com.alibaba.dubbo.demo;public interface DemoService {String sayHello(String name);}

在服务提供方实现接口:(对服务消费方隐藏实现)

DemoServiceImpl.java
package com.alibaba.dubbo.demo.provider;import com.alibaba.dubbo.demo.DemoService;public class DemoServiceImpl implements DemoService {public String sayHello(String name) {return "Hello " + name;}}

用Spring配置声明暴露服务:

provider.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="hello-world-app"  /><!-- 使用multicast广播注册中心暴露服务地址 --><dubbo:registry address="multicast://224.5.6.7:1234" /><!-- 用dubbo协议在20880端口暴露服务 --><dubbo:protocol name="dubbo" port="20880" /><!-- 声明需要暴露的服务接口 --><dubbo:service interface="com.alibaba.dubbo.demo.DemoService" ref="demoService" /><!-- 和本地bean一样实现服务 --><bean id="demoService" class="com.alibaba.dubbo.demo.provider.DemoServiceImpl" /></beans>

加载Spring配置:

Provider.java

import org.springframework.context.support.ClassPathXmlApplicationContext;public class Provider {public static void main(String[] args) throws Exception {ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"http://10.20.160.198/wiki/display/dubbo/provider.xml"});context.start();System.in.read(); // 按任意键退出}}

服务消费者

通过Spring配置引用远程服务:

consumer.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="consumer-of-helloworld-app"  /><!-- 使用multicast广播注册中心暴露发现服务地址 --><dubbo:registry address="multicast://224.5.6.7:1234" /><!-- 生成远程服务代理,可以和本地bean一样使用demoService --><dubbo:reference id="demoService" interface="com.alibaba.dubbo.demo.DemoService" /></beans>

加载Spring配置,并调用远程服务:(也可以使用IoC注入)

Consumer.java

import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.alibaba.dubbo.demo.DemoService;public class Consumer {public static void main(String[] args) throws Exception {ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"http://10.20.160.198/wiki/display/dubbo/consumer.xml"});context.start();DemoService demoService = (DemoService)context.getBean("demoService"); // 获取远程服务代理String hello = demoService.sayHello("world"); // 执行远程方法System.out.println( hello ); // 显示调用结果}}

dubbo教程系列2相关推荐

  1. python平稳性检验_时间序列预测基础教程系列(14)_如何判断时间序列数据是否是平稳的(Python)...

    时间序列预测基础教程系列(14)_如何判断时间序列数据是否是平稳的(Python) 发布时间:2019-01-10 00:02, 浏览次数:620 , 标签: Python 导读: 本文介绍了数据平稳 ...

  2. PowerDesigner教程系列(总)

    目标: 本文主要介绍PowerDesigner中概念数据模型 CDM的基本概念. 一.概念数据模型概述 数据模型是现实世界中数据特征的抽象.数据模型应该满足三个方面的要求: 1)能够比较真实地模拟现实 ...

  3. 【冰极峰教程系列之二】:牢不可破的九宫格布局

    原创:冰极峰 转载请注明出处 时间:2009年6月22日 8:40:16 冰极峰教程系列之一:九宫格基本布局 冰极峰教程系列之二:牢不可破的九宫格布局 冰极峰教程系列之三:三层分离的完美九宫格 冰极峰 ...

  4. 智能合约语言 Solidity 教程系列9 - 错误处理

    这是Solidity教程系列文章第9篇介绍Solidity 错误处理. Solidity系列完整的文章列表请查看分类-Solidity. 写在前面 Solidity 是以太坊智能合约编程语言,阅读本文 ...

  5. 在ASP.NET 2.0中操作数据教程系列

    在ASP.NET 2.0中操作数据教程系列 Scott Mitchell最近完成了为 www.asp.net 网站撰写的<在ASP.NET 2.0中操作数据 (Working with Data ...

  6. ttlsa教程系列之MySQL---MySQL/Galera集群-多主高可用性负载均衡

    为什么80%的码农都做不了架构师?>>>    ttlsa教程系列之MySQL ---- MySQL/Galera集群-多主高可用性负载均衡 Percona和MariaDB发布版本中 ...

  7. eeglab教程系列(15)-绘制独立成分ERP贡献

    要完成该操作,必须保证已加载数据和电极位置数据,同时还要对数据进行提取epoch,并对数据进行ICA处理,操作如下: 加载数据文件:eeglab教程系列(2)-加载.显示数据 加载位置文件:eegla ...

  8. eeglab教程系列(14)-Working with ICA Components

    在本案例前,先要进行进行ICA数据分解 操作: Tools > Run ICA,具体操作参照eeglab教程系列(12)-使用ICA分解数据的第三步. 1.绘制component spectra ...

  9. eeglab教程系列(13)-学习和删除ICA组件

    研究组件属性的操作:Tools > Reject data using ICA > Reject components by map.操作过程如下: 出现如下界面后,点击"OK& ...

  10. eeglab教程系列(12)-使用ICA分解数据

    ICA分解数据 第一步:导入数据eeglab教程系列(2)-加载.显示数据 第二步:根据教程eeglab教程系列(3)-绘制脑电头皮图中导入位置信息. 做完上两步操作后,可以进行ICA数据分解. 第三 ...

最新文章

  1. BCH到底该采用哪种交易排序规则?
  2. wenbao与windows命令
  3. NTU 课程笔记:CV6422 样本分布
  4. 基于FTP的Nordic nRF51822 OTA 教程一之修改boot区大小
  5. php.ini 相对路径,php中zend相对路径问题
  6. 学习 protobuf(一)—— ubuntu 下 protobuf 2.6.1 的安装
  7. nagios报错汇总
  8. php原生好还是tp好_webapp/H5封装,混开APP,没有原生APP好?事实是这样的吗?
  9. 一文理解设计模式--单例模式(Singleton)
  10. 20190820 On Java8 第十章 接口
  11. php开发类库,php类库_PHP开发中常用类库
  12. 把几个任务分配到几个设备上的代码
  13. 虚拟麦克风音频输入_Audio Precision 全新声学/音频分析软件可减少测试时间
  14. 龙芯2F笔记本安装gentoo系统
  15. 当前上下文中不存在名称 ViewBag
  16. redis----------基本命令使用
  17. 在 AWS上域名备案流程和文件
  18. win10 搭建PHP + Apache + MySQL运行环境
  19. Notepad++搜索结果窗找不见了
  20. 前端js实现表格数据的上移下移

热门文章

  1. Perl 脚本命令行传入参数
  2. l298n电机哪一端为正_L298N电机驱动模块原理
  3. 【认知femto】femtocell的认知无线电频谱感知算法性能仿真
  4. NFC匹配电路与滤波器设计
  5. 学会计需要学计算机应用吗,会计都要学什么
  6. 基于FFmpeg的Qt视频播放器
  7. Android手机证书安装
  8. foobar 2000|foobar2000中文版32/64位下载 v1.3.16
  9. 写给非网工的CCNA教程(8)跨LAN的通信
  10. 读WebTrends的Javascript源码笔记