国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開發(fā) > Java > 正文

springboot集成dubbo注解版的示例代碼

2024-07-14 08:42:37
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

工作中用springboot搭建項(xiàng)目,用dubbo做遠(yuǎn)程調(diào)用。springboot提倡注解配置和java配置,本文是基于dubbo最新版本2.6.3,使用注解方式的示例。

本文假定你已經(jīng)有springboot和dubbo的使用經(jīng)驗(yàn)。

dubbo簡(jiǎn)介

dubbo是阿里巴巴開源的分布式服務(wù)框架,一般使用dubbo的RPC調(diào)用。但2016年停止維護(hù),現(xiàn)在使用的2.8.4版本其實(shí)是當(dāng)當(dāng)維護(hù)的dubbox。2017年8月阿里又重啟維護(hù)dubbo,并從2.5.7版本開始支持注解配置。

準(zhǔn)備

此示例使用gradle構(gòu)建,關(guān)于gradle的安裝配置,請(qǐng)參考官方文檔。

zookeeper作為dubbo服務(wù)發(fā)現(xiàn)的基礎(chǔ)組件,關(guān)于zookeeper的安裝啟動(dòng),請(qǐng)參考官方文檔。

項(xiàng)目結(jié)構(gòu)如下

springboot-dubbo├─settings.gradle├─build.gradle├─springboot-dubbo-api│ │─build.gradle│ └─src│   └─main│     └─java│       └─org│         └─aaron│           └─springboot│             └─dubbo│               └─api│                 DemoService.java├─springboot-dubbo-consumer│ │─build.gradle│ └─src│   └─main│     ├─java│     │ └─org│     │   └─aaron│     │     └─springboot│     │       └─dubbo│     │         └─consumer│     │           DemoController.java│     │           DubboConfiguration.java│     │           DubboConsumerApplication.java│     │             │     └─resources│        application.yml└─springboot-dubbo-provider  │─build.gradle  └─src    └─main      ├─java      │ └─org      │   └─aaron      │     └─springboot      │       └─dubbo      │         └─provider      │           DemoServiceImpl.java      │           DubboConfiguration.java      │           DubboProviderApplication.java      │                   └─resources        application.yml

引入外部依賴

  compile('com.alibaba:dubbo:2.6.3')  compile('org.apache.zookeeper:zookeeper:3.4.9')  compile('org.apache.curator:curator-framework:4.0.0')  compile('org.springframework.boot:spring-boot-starter-web')

配置

1.生產(chǎn)者dubbo配置

@Configurationpublic class DubboConfiguration {  @Bean  public RegistryConfig registryConfig() {    RegistryConfig registryConfig = new RegistryConfig();    registryConfig.setAddress("zookeeper://127.0.0.1:2181");    registryConfig.setClient("curator");    return registryConfig;  }  @Bean  public ApplicationConfig applicationConfig() {    ApplicationConfig applicationConfig = new ApplicationConfig();    applicationConfig.setName("sprintboot-dubbo-provider");    return applicationConfig;  }  @Bean  public ProtocolConfig protocolConfig() {    ProtocolConfig protocolConfig = new ProtocolConfig();    protocolConfig.setPort(12021);    protocolConfig.setName("dubbo");    return protocolConfig;  }}

2.消費(fèi)者dubbo配置

@Configurationpublic class DubboConfiguration {  @Bean  public RegistryConfig registryConfig() {    RegistryConfig registryConfig = new RegistryConfig();    registryConfig.setAddress("zookeeper://127.0.0.1:2181");    registryConfig.setClient("curator");    return registryConfig;  }  @Bean  public ApplicationConfig applicationConfig() {    ApplicationConfig applicationConfig = new ApplicationConfig();    applicationConfig.setName("sprintboot-dubbo-consumber");    return applicationConfig;  }  @Bean  public ConsumerConfig consumerConfig() {    ConsumerConfig consumerConfig = new ConsumerConfig();    consumerConfig.setTimeout(3000);    return consumerConfig;  }}

3.定義接口

public interface DemoService {  String sayHello();}

4.生產(chǎn)者實(shí)現(xiàn)接口

import com.alibaba.dubbo.config.annotation.Service;@Component@Service(interfaceClass = DemoService.class, version = "1.0")public class DemoServiceImpl implements DemoService {  @Override  public String sayHello() {    return "Hello Springboot Dubbo";  }}

5.消費(fèi)者調(diào)用接口

import com.alibaba.dubbo.config.annotation.Reference;@RestControllerpublic class DemoController {  @Reference(interfaceClass = DemoService.class, version = "1.0")  private DemoService demoService;  @RequestMapping("/hello")  public String sayHello() {    return demoService.sayHello();  }}

啟動(dòng)

  1. 本地啟動(dòng)zookeeper
  2. 依次啟動(dòng)springboot-dubbo-provider,springboot-dubbo-consumer
  3. 瀏覽器訪問(wèn) localhost:8080/hello
  4. 看到返回'Hello Springboot Dubbo' 即表示調(diào)用成功

其他

示例源碼(Github) 

Dubbo注解配置

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到JAVA教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 赤峰市| 浮梁县| 南召县| 夏邑县| 若尔盖县| 高州市| 镇巴县| 汉源县| 五莲县| 榆树市| 万载县| 宁强县| 株洲市| 三穗县| 水城县| 保康县| 乌兰察布市| 安西县| 日土县| 苏尼特右旗| 华安县| 乐亭县| 汕尾市| 台江县| 聂拉木县| 邵武市| 高清| 杭州市| 阿拉尔市| 长春市| 阳泉市| 淮阳县| 茶陵县| 开化县| 比如县| 西充县| 香港 | 周宁县| 鹤峰县| 社旗县| 华宁县|