我们刚才通过admin管理界面,已经确定好了,我的服务方是发布成功的,所以下面我们就可以创建一个消费者,选择一个Maven Project,随便起个名,dubbo-consumer,这个是什么类型的,这就是标准的WEB项目,它是标准的WEB项目,所以这里要选择war,那在这里做的时候,有人说我不想建成WEB类型,就想要一个jar类型,能不能测试出这个效果,可以的,不是必须的,那我们就来一下,只要你能保证配置文件被加载,建什么项目都没关系,还叫dubbo-consumer,他的环境和dubbo-service-impl的环境是一样的,首先他的pom.xml的东西,第一个接口,这个东西是非常有必要的,如果消费者不引入dubbo-service接口,那个类需要创建哪个对象它是不知道的,第二个因为我是消费者,dubbo这块该有的还是得有,去掉了老版本新版本还是得有,按照讲的原理图,消费者需要访问注册中心,是不是需要去订阅啊,所以zkclient也得有,所以这几个包都要拿过来
<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>com.learn</groupId><artifactId>dubbo-consumer</artifactId><version>0.0.1-SNAPSHOT</version><dependencies><dependency><groupId>com.learn</groupId><artifactId>dubbo-service</artifactId><version>0.0.1-SNAPSHOT</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>dubbo</artifactId><version>2.5.3</version><exclusions><exclusion><artifactId>spring</artifactId><groupId>org.springframework</groupId></exclusion></exclusions></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.1.6.RELEASE</version></dependency><dependency><groupId>com.101tec</groupId><artifactId>zkclient</artifactId><version>0.10</version></dependency></dependencies>
</project>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsdhttp://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"><!-- 叫consumer --><dubbo:application name="dubbo-consumer"/><!-- 注册中心需不需要 想想,是不是一定得需要的,不告诉他注册中心在哪,consumer去哪访问注册中心啊,--><dubbo:registry address="localhost:2181" protocol="zookeeper"></dubbo:registry><!-- 这个可以不要 是不是得需要的,因为这一步从注册中心获得provider的地址和端口号,所以这一步不用配,--><!-- <dubbo:protocol name="dubbo" port="20888"></dubbo:protocol> --><!-- 这里需不需要写,这里一定是不需要写的 --><!-- <dubbo:service interface="com.learn.service.DemoService" ref="demoServiceImpl"></dubbo:service><bean id="demoServiceImpl" class="com.learn.service.impl.DemoServiceImpl"></bean> --><!-- 我们这里需要写什么呢 消费者当注解用,没有任何冲突,提供者那边有冲突,那我们这边可以配置一个注解驱动配置注解扫描,扫描一下,哪个在哪个包中,dubbo:annotation里面有个package,com.learn.service.impl有没有发现重包了,刚才起包没起好,正常我们这么起最好我在service方起包的时候,com.learn.dubbo.service,service实现类就是com.learn.dubbo.service.impl然后consumer是有多个的,我们这里就换个名吧,叫consumer吧,com.learn.consumer.service.impl,什么意思来的,注意他扫的是谁,扫的可不是接口,跟接口没关,和provider一点关系也没有,是自己项目的一个包,所以我在这里面需要新建一个接口--><dubbo:annotation package="com.learn.consumer.service.impl" /><!-- 为什么一定要写testImpl这个 一定要注意啊,写<bean id="testImpl" class="com.learn.consumer.service.impl.TestServiceImpl" >这个,是为了让Spring容器管理,       --><bean id="testImpl" class="com.learn.consumer.service.impl.TestServiceImpl" ></bean>
</beans>
package com.learn.consumer.service;/*** 这里是个接口,要不要写个实现类* 不用* 消费者方和我们平时写的WEB项目* 唯一的不同就是mapper不用写了* 其他的该怎么写还是怎么写* 正常我们的WEB项目是建实体类和mapper* mapper现在不用写* 那下面该干什么呢* 下面就是service* service下就是impl* 就是正常些就行了* 消费者就是一个普通的标准项目* @author Leon.Sun**/
public interface TestService {/*** 里面随便做件事情*/void test();}
package com.learn.service;public interface DemoService {/*** 在这里* * @param name* @return*/String demo(String name);}
package com.learn.consumer.service.impl;import com.alibaba.dubbo.config.annotation.Reference;
import com.learn.consumer.service.TestService;
import com.learn.service.DemoService;/*** 在上面这里我来添加实现* 添加未实现方法* @author Leon.Sun**/
public class TestServiceImpl implements TestService {/*** 我们在这里写的时候* 消费者方就声明一个* 叫做DemoService* 上面加上一个注解* 我们刚才在配置文件里加的注解扫描* 看是不是这个包* 扫的他的目的就是为了扫@Reference他* 看哪里的* com.alibaba.dubbo.config.annotation.Reference;* dubbo的* 这个注解就表示* 从注册中心获取该类的代理对象* 当我们使用该对象真实的去调用方法的时候* 通过代理对象调用方法* 一会我们打个断点看一下* 下面正常调用就行了* */@Referenceprivate DemoService demoService;@Overridepublic void test() {/*** 现在这里要调用provider要提供的功能* 怎么调呢* 我们现在这个功能在哪里了* 在哪个接口里了* 里面有个什么方法* 叫demo()* 传进去一个名字叫张三* 返回的叫name*/String name = demoService.demo("张三");/*** 输出name*/System.out.println(name);}
}
package com.learn.consumer.test;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.learn.consumer.service.impl.TestServiceImpl;/*** 写个测试类测试一下* 消费者方所有的配置信息都在这里了* applicationContext-dubbo.xml* 所以我们在启动的时候* * @author Leon.Sun**/
public class Test {public static void main(String[] args) {/*** 老规矩我还是得这么做* 这是干什么呢这是* 加载配置文件* applicationContext-dubbo.xml* 往里放*/ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext-dubbo.xml");/*** 我们现在要调哪个类的哪个方法* 是不是TestServiceImpl这个类的test这个方法* 现在是想从Spring容器中把这个类调出来* 怎么在Spring容器中配置一个类对象* 是不是bean* 这是单独测的时候* web项目不这么写* ac.getBean* 名字叫testImpl* 类型叫* 返回值就叫t了*/TestServiceImpl t = ac.getBean("testImpl",TestServiceImpl.class);/*** t调刚才的方法名叫test* 就完事了* 我们跑一下* 服务方我们还没有起* 传递过来的name:张三* 我们要的就是这个东西* 就通过这样的一个功能就调用到了* 现在我们演示的是一个JAVA项目*/t.test();}
}

Consumer搭建相关推荐

  1. 【dubbo】消费者Consumer搭建

    一.consumer搭建(可以web/jar) 1.新建Maven项目,groupId:com.dubbo.consumer.demo artifactId:demo projectName:dubb ...

  2. 【真会玩】- SpringCloud Netflix 实战笔记 -【Eureka】

    文章目录 友情提醒 前置环境搭建 Eureka 概念初识 服务注册 服务发现 续租 拉取注册表 Cancel 同步时间延时 通讯机制 Eureka服务端搭建 Eureka客户端 Provider搭建 ...

  3. 4.2.10 Kafka源码剖析, 阅读环境搭建, broker启动流程, topic创建流程, Producer生产者流程, Consumer消费者流程,

    目录 4.1 Kafka源码剖析之源码阅读环境搭建 4.1.1 安装配置Gradle 4.1.2 Scala的安装和配置 4.1.3 Idea配置 4.1.4 源码操作 4.2 Kafka源码剖析之B ...

  4. WMI技术介绍和应用——Event Consumer Provider

    在<WMI技术介绍和应用--Event Provider>和<WMI技术介绍和应用--接收事件>中,我们展现了如何处理和事件相关的WMI知识.而<WMI技术介绍和应用-- ...

  5. java kafka 集群消费_kafka集群搭建和使用Java写kafka生产者消费者

    转自:http://chengjianxiaoxue.iteye.com/blog/2190488 1 kafka集群搭建 1.zookeeper集群 搭建在110, 111,112 2.kafka使 ...

  6. 从零搭建 Spring Cloud 服务(超级详细)

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ ...

  7. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(九)安装kafka_2.11-1.1.0

    如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.& ...

  8. 在archlinux上搭建twitter storm cluster

    本文详细描述如何在archlinux上搭建twitter storm cluster,转载请注明出处,谢谢. 有关archlinux基本系统安装,请参照archlinux简明安装指南一文,下面以上述为 ...

  9. dubbo的provider和consumer的demo

    2019独角兽企业重金招聘Python工程师标准>>> ** provider项目 ** 1.需要调用的接口 package service.api; public interfac ...

最新文章

  1. Keil中使用宏编译来定义DEBUG输出
  2. php reactphp wss_workerman的基本用法(示例详解)
  3. DDD理论学习系列(10)-- 聚合
  4. ListT转换为DataTable
  5. 机器学习第二回——多变量线性回归
  6. java se 通用能力-判断推理专项练习(选择题)
  7. 图书管理系统需求分析
  8. 一张图教你清理IE浏览器缓存
  9. 【linux】vi常用快捷键
  10. 怎么用电脑设置让wifi变快
  11. springboot+elasticsearch 中测试查询语句报错failed to map source
  12. STM32H7 USART 时钟初始化
  13. 基于CAD等高线的流域边界绘制
  14. 找高清图片素材,这8个网站就够了
  15. 情侣生日纪念日倒数提醒的便签
  16. Java学习打卡第八天——[Collection终结之HashMap,Collections的简介和使用]
  17. 慕课网《Flutter从入门到进阶》学习笔记一
  18. A4988驱动模块驱动进电机
  19. 是社会太浮躁、还是我们太浮躁
  20. 6、☞基于STM32的电子秤设计√★

热门文章

  1. Android——android:gravity 和 android:layout_Gravity
  2. js 中的[] {}是什么意思
  3. 使用命令行建立Zend Framework项目
  4. cxGrid, 和AfterScroll
  5. 【Apache POI】Java 读取Excel文件
  6. BZOJ5249: [2018多省省队联测]IIIDX(线段树 贪心)
  7. go defer性能测试
  8. 探讨Express Router Route
  9. 【bootstrap】使用支持bootstrap的时间插件daterangepicker
  10. 使用对象存储应对勒索病毒