# springboot-dubbo-demo
**Repository Path**: dmall/springboot-dubbo-demo
## Basic Information
- **Project Name**: springboot-dubbo-demo
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2018-07-02
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# SpringBoot整合dubbo示例
## 一、定义API(API模块)
### 1. 定义api
```java
package com.imooc.springboot.dubbo.demo;
public interface DemoService {
String sayHello(String name);
}
```
### 2. install到本地
对外提供的maven坐标如下:
```xml
com.imooc
dubbo-demo-api
1.0-SNAPSHOT
```
## 二、服务提供者(provider模块)
### 1. 增加maven依赖
```xml
org.springframework.boot
spring-boot-starter-parent
1.5.3.RELEASE
io.dubbo.springboot
spring-boot-starter-dubbo
1.0.0
com.imooc
dubbo-demo-api
1.0-SNAPSHOT
```
### 2. 实现API接口
```java
package com.imooc.springboot.dubbo.demo.provider;
import com.alibaba.dubbo.config.annotation.Service;
import com.imooc.springboot.dubbo.demo.DemoService;
@Service
public class DemoServiceImpl implements DemoService {
public String sayHello(String name) {
return "Hello, " + name + " (from Spring Boot)";
}
}
```
### 3. springboot配置文件 - application.properties
```bash
spring.dubbo.application.name=demo-provider
#这里使用广播的注册方式,
#如果有Can't assign address异常需要加vm参数:
#-Djava.net.preferIPv4Stack=true
spring.dubbo.registry.address=multicast://224.5.6.7:1234
spring.dubbo.protocol.name=dubbo
spring.dubbo.protocol.port=20880
spring.dubbo.scan=com.imooc.springboot.dubbo.demo.provider
```
### 4. 启动类
```java
package com.imooc.springboot.dubbo.demo.provider;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MainProvider {
public static void main(String[] args) {
SpringApplication.run(MainProvider.class,args);
}
}
```
## 三、服务消费者(consumer模块)
### 1. 增加maven依赖
```xml
org.springframework.boot
spring-boot-starter-parent
1.5.3.RELEASE
org.springframework.boot
spring-boot-starter-web
io.dubbo.springboot
spring-boot-starter-dubbo
1.0.0
com.imooc
dubbo-demo-api
1.0-SNAPSHOT
```
### 2. 实现controller
```java
package com.imooc.springboot.dubbo.demo.consumer;
import com.alibaba.dubbo.config.annotation.Reference;
import com.imooc.springboot.dubbo.demo.DemoService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class DemoConsumerController {
@Reference
private DemoService demoService;
@RequestMapping("/sayHello")
public String sayHello(@RequestParam String name) {
return demoService.sayHello(name);
}
}
```
### 3. springboot配置文件 - application.properties
```bash
server.port=8080
#dubbo config
spring.dubbo.application.name=demo-consumer
#这里使用广播的注册方式,
#如果有Can't assign address异常需要加vm参数:
#-Djava.net.preferIPv4Stack=true
spring.dubbo.registry.address=multicast://224.5.6.7:1234
spring.dubbo.scan=com.imooc.springboot.dubbo.demo.consumer
```
### 4. 启动类
```java
package com.imooc.springboot.dubbo.demo.consumer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class,args);
}
}
```