1,引入依赖
<!-- Spring Boot Dubbo 依赖 -->
<dependency>
<groupId>io.dubbo.springboot</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>1.0.0</version>
</dependency>
2,接口(dubbo-interface)
新建公用的接口项目dubbo-interface,打成jar包。
package demo.dubbo.service;
import java.util.List;
public interface DubboTestService {
String test1(String str);
List<String> test2();
}
服务提供方dubbo-provider和服务消费方dubbo-consume的pom.xml引入接口依赖
<!-- 接口 -->
<dependency>
<groupId>demo.dubbo</groupId>
<artifactId>dubbo-interface</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
2,服务提供方(dubbo-provider)
①实现接口,注册服务
实现dubbo-interface的接口的实现类加**@Service**注解,
注意包是dubbo里面的(import com.alibaba.dubbo.config.annotation.Service;)
package demo.dubbo.service;
import java.util.ArrayList;
import java.util.List;
import com.alibaba.dubbo.config.annotation.Service;
@Service
public class DubboTestServiceImpl implements DubboTestService{
@Override
public String test1(String str) {
// TODO Auto-generated method stub
System.out.println("调用服务test1方法,参数是:" + str);
return "hello dubbo";
}
@Override
public List<String> test2() {
// TODO Auto-generated method stub
System.out.println("调用服务test2方法" );
List<String> list = new ArrayList<>();
list.add("hello");
list.add("dubbo");
return list;
}
}
②application.yml关于dubbo的配置
server:
port: 8080
contextPath: /
spring:
dubbo:
application: #应用配置
name: provider #应用名字
scan: demo.dubbo.service #服务包名 service包名
protocol: #协议配置 只需要服务提供方配置
name: dubbo #协议名称
port: 20880 #协议端口号
registry: #注册中心地址配置
address: zookeeper://10.1.255.102:2181
3,服务消费方(dubbo-consume)
①通过**@Reference**远程注入
注意包名也是dubbo里面的(import com.alibaba.dubbo.config.annotation.Reference;)
package demo.dubbo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.alibaba.dubbo.config.annotation.Reference;
import demo.dubbo.service.DubboTestService;
@Controller
@RequestMapping("/")
public class DubboTestController {
@Reference
private DubboTestService dubboTestService;
@RequestMapping("/test1")
@ResponseBody
public String test1() {
return dubboTestService.test1("test");
}
@RequestMapping("/test2")
@ResponseBody
public Object test2() {
return dubboTestService.test2();
}
}
②application.yml关于dubbo的配置
server:
port: 8082
contextPath: /
spring:
dubbo:
application: #应用配置
name: consume #应用名字
scan: demo.dubbo.controller #扫描控制层
registry: #注册中心地址配置
address: zookeeper://10.1.255.102:2181
4,资料下载
链接:https://pan.baidu.com/s/1dXqse1TinLfTo-HlcDdUzg
提取码:lgq7