Consumer搭建

我们刚才通过admin管理界面,已经确定好了,我的服务方是发布成功的,所以下面我们就可以创建一个消费者,选择一个Maven Project,随便起个名,dubbo-consumer,这个是什么类型的,这就是标准的WEB项目,它是标准的WEB项目,所以这里要选择war,那在这里做的时候,有人说我不想建成WEB类型,就想要一个jar类型,能不能测试出这个效果,可以的,不是必须的,那我们就来一下,只要你能保证配置文件被加载,建什么项目都没关系,还叫dubbo-consumer,他的环境和dubbo-service-impl的环境是一样的,首先他的pom.xml的东西,第一个接口,这个东西是非常有必要的,如果消费者不引入dubbo-service接口,那个类需要创建哪个对象它是不知道的,第二个因为我是消费者,dubbo这块该有的还是得有,去掉了老版本新版本还是得有,按照讲的原理图,消费者需要访问注册中心,是不是需要去订阅啊,所以zkclient也得有,所以这几个包都要拿过来
4.0.0com.learndubbo-consumer0.0.1-SNAPSHOTcom.learndubbo-service0.0.1-SNAPSHOTcom.alibabadubbo2.5.3springorg.springframeworkorg.springframeworkspring-webmvc4.1.6.RELEASEcom.101teczkclient0.10


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();}
}

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部