一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - springboot集成dubbo注解版的示例代碼

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

2021-06-06 14:04Menng Java教程

這篇文章主要介紹了springboot集成dubbo注解版的示例代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

工作中用springboot搭建項目,用dubbo做遠程調用。springboot提倡注解配置和java配置,本文是基于dubbo最新版本2.6.3,使用注解方式的示例。

本文假定你已經有springboot和dubbo的使用經驗。

dubbo簡介

dubbo是阿里巴巴開源的分布式服務框架,一般使用dubbo的rpc調用。但2016年停止維護,現在使用的2.8.4版本其實是當當維護的dubbox。2017年8月阿里又重啟維護dubbo,并從2.5.7版本開始支持注解配置。

準備

此示例使用gradle構建,關于gradle的安裝配置,請參考官方文檔

zookeeper作為dubbo服務發現的基礎組件,關于zookeeper的安裝啟動,請參考官方文檔

項目結構如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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

引入外部依賴

?
1
2
3
4
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.生產者dubbo配置

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
@configuration
public 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.消費者dubbo配置

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@configuration
public 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.定義接口

?
1
2
3
public interface demoservice {
  string sayhello();
}

4.生產者實現接口

?
1
2
3
4
5
6
7
8
9
10
11
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.消費者調用接口

?
1
2
3
4
5
6
7
8
9
10
11
12
13
import com.alibaba.dubbo.config.annotation.reference;
 
@restcontroller
public class democontroller {
 
  @reference(interfaceclass = demoservice.class, version = "1.0")
  private demoservice demoservice;
 
  @requestmapping("/hello")
  public string sayhello() {
    return demoservice.sayhello();
  }
}

啟動

  1. 本地啟動zookeeper
  2. 依次啟動springboot-dubbo-provider,springboot-dubbo-consumer
  3. 瀏覽器訪問 localhost:8080/hello
  4. 看到返回'hello springboot dubbo' 即表示調用成功

其他

示例源碼(github)

dubbo注解配置

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.spring4all.com/article/1587

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本一区视频 | 无耻三级在线观看 | 亚洲国产成人精品无码区99 | 成人午夜爽爽爽免费视频 | 日本另类z0zx高清 | 欧美黑人性猛交╳xx╳动态图 | 日韩av线观看 | 国产高清免费在线 | 手机在线观看伦理片 | 国产亚洲精品美女久久久 | 久久精品123| 国产福利一区二区在线精品 | 青青草视频破解版 | 免费超级乱淫播放手机版 | 红色毛片 | 四虎影视紧急入口地址大全 | 欧美男人天堂 | 嗯啊好爽视频 | 四虎影视免费观看 | 国内精品露脸在线视频播放 | 爱情岛论坛亚洲永久入口口 | 俄罗斯图书馆无打码久久 | 日本性漫画 | 欧美视频久久 | 亚洲国产精品综合久久一线 | 午夜综合网 | 暗卫调教女主肉高h | 久久婷婷五月综合色丁香 | 久久永久免费视频 | 精品国产乱码久久久久久免费流畅 | 91免费播放人人爽人人快乐 | 好性20岁 | 亚洲午夜久久久久国产 | 日本免费精品视频 | 含羞草传媒一天免费看下 | 日本护士xxxx爽爽爽 | 久久精品一卡二卡三卡四卡视频版 | 暴露狂婷婷医院暴露tx | 私人家庭影院5577 | www.尤物 | 色橹|