目录
前情提要
这篇我们将消费者如何获取提供者的服务,紧接上篇
https://blog.csdn.net/Delicious_Life/article/details/104612461
开整
1.创建工程
我们新建消费者工程,工程结构如下
2.导入依赖
需要说明的是,因为项目比较小,所以并没有把提供者的业务和接口分成两个项目。我们在pom依赖中引入提供者的工程是为了调用接口,而不是直接调用实现方法
<?xml version="1.0" encoding="UTF-8"?>
<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">
<parent>
<artifactId>itcast-dubbo</artifactId>
<groupId>cn.itcast.dubbo</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>cn.itcast.dubbo</groupId>
<artifactId>itcast-dubbo-consumer</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!--添加springboot依赖,非web项目-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.13</version>
</dependency>
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>
<!--引入service的依赖-->
<dependency>
<groupId>cn.itcast.dubbo</groupId>
<artifactId>itcast-dubbo-service</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
3.编写配置文件
# Spring boot application
spring.application.name = itcast-dubbo-consumer
server.port = 9091
# 应用名称
dubbo.application.name = dubbo-consumer-demo
# zk注册中心
dubbo.registry.address = zookeeper://192.168.62.132:2181
dubbo.registry.client = zkclient
4.新建测试类
package cn.itcast.dubbo;
import cn.itcast.dubbo.pojo.User;
import cn.itcast.dubbo.service.UserService;
import com.alibaba.dubbo.config.annotation.Reference;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.List;
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserServiceTest {
@Reference(version = "1.0.0")
private UserService userService;
@Test
public void testQueryAll(){
List<User> users = this.userService.queryAll();
for (User user : users) {
System.out.println(user);
}
}
}
5.测试
注册中心zk启动的情况下我们执行测试方法,下图即表示我们调用了生产者的服务。
提示:这里引用的springboot不是web项目,实战中需要稍作修改。consumer作为服务者的同时也可以作为提供者,需要consumer服务的项目根据同样的原理引入comsumer的依赖即可