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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产在线成人精品 | 美女大鸡鸡 | 亚洲精品资源 | 毛片a级放荡的护士hd | 日本黄大片影院一区二区 | 俄罗斯13一14处出血视频在线 | 日本乱中文字幕系列在线观看 | 厨房play黄瓜进去小说h | 国产欧美视频一区二区三区 | 美女脱了内裤打开腿让男人图片 | 国产日本欧美亚洲精品视 | 国外成品精品1688 | 双性肉文高h | 国产成人精品在线观看 | 亚洲国产在 | 午夜国产 | 热99精品 | 护士让我吃奶我扒她奶 | 国产精品99爱免费视频 | 午夜免费啪视频观看视频 | 国产午夜精品一区二区三区不卡 | 五月天精品视频播放在线观看 | 男人天堂2023 | 无套内射在线观看THEPORN | 天使萌痴汉在线中文字幕 | 东北老妇露脸xxxxx | 含羞草国产亚洲精品岁国产精品 | 美女岳肉太深了使劲 | 描写细腻的高h肉 | 香蕉国产人午夜视频在线 | avtt手机版 | 国产欧美精品一区二区三区–老狼 | 久久成人a毛片免费观看网站 | h日本漫画全彩在线观看 | 日本视频二区 | 91大神精品 | 国产国语videosex另类 | 美女操批 | 91极品女神久色在线播放 | 色欧美在线 | blacked亚裔videoshd |