博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Dubbo入门示例
阅读量:6871 次
发布时间:2019-06-26

本文共 2894 字,大约阅读时间需要 9 分钟。

hot3.png

需求:a作为服务提供方,被b服务消费者调用。

项目规划

  • c-common:将公共的实体类、接口放入该模块下。
  • a-provider:服务提供者。
  • b-consumer:服务消费者。

引入依赖

c-common下的pom.xml中,加入如下依赖:

com.alibaba
dubbo
2.6.2
com.101tec
zkclient
0.10
org.apache.curator
curator-framework
2.12.0

同时,a-providerb-consumer两个模块引入c-common

org.yun
c-common
1.0-SNAPSHOT

开发c-common

很简单,就是定义服务提供者与服务消费者的接口。

/** * 服务提供接口 */public interface AService {    void provider();}
/** * 服务消费接口 */public interface BService {    void consumer();}

开发a-provider

a作为服务提供者要实现AService接口。

import com.alibaba.dubbo.config.annotation.Service;import org.yun.common.service.AService;/** * 注意:这个是dubbo包下的@Service * 表示对外暴露的服务 */@Servicepublic class AServiceImpl implements AService {    @Override    public void provider() {        System.out.println("a-provider");        System.out.println("我被b-consumer调用了...");    }}

provider.xml中,配置具体的服务。

编写服务提供者启动类

public class ProviderMain {    public static void main(String[] args) throws IOException {        ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("provider.xml");        ctx.start();        System.out.println("服务启动了...");        System.in.read();    }}

启动服务,看到..

注意:因为使用Zookeeper作为注册中心,所以要先启动Zookeeper服务,然后再启动 a-provider 。

至此,服务提供者开发完毕。接下来,开发服务消费者。

开发b-consumer

b作为服务消费者要实现BService接口。

import com.alibaba.dubbo.config.annotation.Reference;import org.springframework.stereotype.Component;import org.yun.common.service.AService;import org.yun.common.service.BService;//也可以是@Service(是Spring下的)。表示被Spring容器管理的组件。@Component  public class BServiceImpl implements BService {    //要引用的远程服务	    @Reference  //该注解是Dubbo下的,表示要调用的远程服务    private AService aService;    @Override    public void consumer() {        aService.provider();//调用远程服务        System.out.println("b-consumer");        System.out.println("我消费了a-provider服务...");    }}

consumer.xml中,配置具体的服务。

编写服务消费者启动类

public class ConsumerMain {    public static void main(String[] args) throws IOException {        ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("consumer.xml");        ctx.start();//启动服务        BService bService = ctx.getBean(BService.class);        bService.consumer(); //服务消费者,消费服务        System.in.read();    }}

启动服务,看到..

转载于:https://my.oschina.net/mondayer/blog/3028984

你可能感兴趣的文章
算法学习(一)
查看>>
将centos6的php5.3升级为5.6
查看>>
(转)JS 数字格式千分位相互转换
查看>>
进度条
查看>>
5.9 j(java学习笔记)强软弱虚引用及WeakHashMap、IdentityHashMap、EnumMap
查看>>
机器学习杂记
查看>>
移动Web开发经验
查看>>
苹果Itools
查看>>
Windows 2003/2008更改远程桌面端口脚本
查看>>
Mozilla开发新功能提升网络隐私保护
查看>>
运营是一门艺术,互联网营销
查看>>
Visual Studio 2010 SP1将支持HTML5和CSS3
查看>>
[资源记录 ]mobile layer cdn
查看>>
关于scrapy的piplines
查看>>
20165232《信息安全系统设计基础》第六周学习总结
查看>>
凸优化之凸集
查看>>
2、Spring开发的jar文件
查看>>
linux -- #!/bin/bash
查看>>
引用程序集没有强名称解决办法
查看>>
poj 2965 The Pilots Brothers' refrigerator
查看>>