Consumer搭建
我们刚才通过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搭建相关推荐
- 【dubbo】消费者Consumer搭建
一.consumer搭建(可以web/jar) 1.新建Maven项目,groupId:com.dubbo.consumer.demo artifactId:demo projectName:dubb ...
- 【真会玩】- SpringCloud Netflix 实战笔记 -【Eureka】
文章目录 友情提醒 前置环境搭建 Eureka 概念初识 服务注册 服务发现 续租 拉取注册表 Cancel 同步时间延时 通讯机制 Eureka服务端搭建 Eureka客户端 Provider搭建 ...
- 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 ...
- WMI技术介绍和应用——Event Consumer Provider
在<WMI技术介绍和应用--Event Provider>和<WMI技术介绍和应用--接收事件>中,我们展现了如何处理和事件相关的WMI知识.而<WMI技术介绍和应用-- ...
- java kafka 集群消费_kafka集群搭建和使用Java写kafka生产者消费者
转自:http://chengjianxiaoxue.iteye.com/blog/2190488 1 kafka集群搭建 1.zookeeper集群 搭建在110, 111,112 2.kafka使 ...
- 从零搭建 Spring Cloud 服务(超级详细)
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! ...
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(九)安装kafka_2.11-1.1.0
如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.& ...
- 在archlinux上搭建twitter storm cluster
本文详细描述如何在archlinux上搭建twitter storm cluster,转载请注明出处,谢谢. 有关archlinux基本系统安装,请参照archlinux简明安装指南一文,下面以上述为 ...
- dubbo的provider和consumer的demo
2019独角兽企业重金招聘Python工程师标准>>> ** provider项目 ** 1.需要调用的接口 package service.api; public interfac ...
最新文章
- Keil中使用宏编译来定义DEBUG输出
- php reactphp wss_workerman的基本用法(示例详解)
- DDD理论学习系列(10)-- 聚合
- ListT转换为DataTable
- 机器学习第二回——多变量线性回归
- java se 通用能力-判断推理专项练习(选择题)
- 图书管理系统需求分析
- 一张图教你清理IE浏览器缓存
- 【linux】vi常用快捷键
- 怎么用电脑设置让wifi变快
- springboot+elasticsearch 中测试查询语句报错failed to map source
- STM32H7 USART 时钟初始化
- 基于CAD等高线的流域边界绘制
- 找高清图片素材,这8个网站就够了
- 情侣生日纪念日倒数提醒的便签
- Java学习打卡第八天——[Collection终结之HashMap,Collections的简介和使用]
- 慕课网《Flutter从入门到进阶》学习笔记一
- A4988驱动模块驱动进电机
- 是社会太浮躁、还是我们太浮躁
- 6、☞基于STM32的电子秤设计√★
热门文章
- Android——android:gravity 和 android:layout_Gravity
- js 中的[] {}是什么意思
- 使用命令行建立Zend Framework项目
- cxGrid, 和AfterScroll
- 【Apache POI】Java 读取Excel文件
- BZOJ5249: [2018多省省队联测]IIIDX(线段树 贪心)
- go defer性能测试
- 探讨Express Router Route
- 【bootstrap】使用支持bootstrap的时间插件daterangepicker
- 使用对象存储应对勒索病毒