官方Github地址
一、服务端开发
1、添加依赖
1 2 3 4 5 6
| <dependency> <groupId>com.alibaba.spring.boot</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>2.0.0</version> </dependency>
|
2、在application.properties添加dubbo的相关配置信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| # Spring boot application spring.application.name = dubbo-provider-demo server.port = 9090 management.port = 9091
# Base packages to scan Dubbo Components (e.g., @Service, @Reference) dubbo.scan.basePackages = com.alibaba.boot.dubbo.demo.provider.service
# Dubbo Config properties ## ApplicationConfig Bean dubbo.application.id = dubbo-provider-demo dubbo.application.name = dubbo-provider-demo
## ProtocolConfig Bean dubbo.protocol.id = dubbo dubbo.protocol.name = dubbo dubbo.protocol.port = 12345
## RegistryConfig Bean dubbo.registry.id = my-registry dubbo.registry.address = N/A
|
3、接下来在Spring Boot Application的上添加@EnableDubboConfiguration,表示要开启dubbo功能. (dubbo provider服务可以使用或者不使用web容器)
1 2 3 4 5
| @SpringBootApplication @EnableDubboConfiguration public class DubboProviderLauncher { }
|
1 2 3 4 5
| @Service(interfaceClass = IHelloService.class) @Component public class HelloServiceImpl implements IHelloService { }
|
==注意:实体类必须实现Serializable接口==
二、消费端的消费服务
1、添加依赖
同上
2、配置文件
1 2 3 4 5 6 7 8 9 10 11 12
| # Spring boot application spring.application.name = dubbo-provider-demo
# Dubbo Config properties ## ApplicationConfig Bean dubbo.application.id = dubbo-consumer-demo dubbo.application.name = dubbo-consumer-demo
## ProtocolConfig Bean dubbo.protocol.id = dubbo dubbo.protocol.name = dubbo dubbo.protocol.port = 12345
|
3、add @EnableDubboConfiguration on Spring Boot Application
1 2 3 4 5
| @SpringBootApplication @EnableDubboConfiguration public class DubboConsumerLauncher { }
|
4、使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| @RestController public class DubboConsumer {
@Reference(url = "dubbo://127.0.0.1:20880") private HseCustomerService customerService;
@GetMapping("list2") public Object getList(@RequestParam(defaultValue = "0")Integer fromId, @RequestParam(defaultValue = "2")Integer limit ){
PageHelper.startPage(fromId,limit); List<HseCustomer> list = customerService.getList();
PageInfo pageInfo = new PageInfo(list);
return pageInfo; } }
|
5、成功效果
