一、接口项目(一个简单的maven项目即可,接口项目写好要install)
package com.dai.inter.service;
public interface UserService {
public String say(String name);
}
二、服务提供者项目(写业务逻辑 实现接口),是一个springboot项目
pom.xml中加入dubbo依赖、zookeeper依赖、你自建的接口项目依赖:
//dubbo依赖
<dependency>
<groupId>io.dubbo.springboot</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>1.0.0</version>
</dependency>
//连接zookeeper的依赖
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
//自建的接口项目依赖
<dependency>
<groupId>com.dai</groupId>
<artifactId>inter</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
application.properties配置文件中配置zookeeper相关信息:
server.port=8081
#应用名字
spring.dubbo.application.name=provider
#连接zookeeper,用于写服务
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
#暴露的服务名字
#spring.dubbo.protocol.name=dubbo
##暴露的服务端口
#spring.dubbo.protocol.port=20880
#开启扫描路径(很重要,用于扫描dubbo注入)
spring.dubbo.scan=com.dai.provi.provi
实现接口项目的接口:
package com.dai.provi.provi.service.iml;
import com.alibaba.dubbo.config.annotation.Service;
import com.dai.inter.service.UserService;
import org.springframework.stereotype.Component;
//加入springboot容器中
@Component
//这是dubbo的注解
@Service(version = "1.0.0")
//实现接口项目的接口
public class K implements UserService {
@Override
public String say(String name) {
return "你好"+name;
}
}
三、开发服务消费者项目(用于得到服务提供者返回的信息进行处理)
同样和服务提供者项目一样加入dubbo依赖、zookeeper依赖、自建的接口项目依赖
在application.properties配置文件中配置:
server.port=8082
#应用名字
spring.dubbo.application.name=consu
#连接zookeeper,用于写服务
spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
#暴露的服务名字
#spring.dubbo.protocol.name=dubbo
##暴露的服务端口
#spring.dubbo.protocol.port=20880
#开启扫描路径(扫描dubbo注入)
spring.dubbo.scan=com.dai.consu
随便在一个controller类中:
package com.dai.consu.controller;
import com.alibaba.dubbo.config.annotation.Reference;
import com.dai.inter.service.UserService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class Sa {
//这是dubbo注解
@Reference(version = "1.0.0")
//这个UserService是自建的接口项目类
private UserService userService;
@RequestMapping("/i")
public Object q(){
return userService.say("丽江");
}
}
注意:安装zookeeper的时候,最好是jdk不要用默认安装路径安装,不然zookeeper找不到jdk会启动不了
1、启动zookeeper,看是不是默认的2181端口
2、启动服务提供者项目
3、启动服务消费者项目
访问“/i"会得到:你好,丽江