最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot2.2.2集成dubbo的實(shí)現(xiàn)方法

 更新時(shí)間:2020年01月20日 15:06:19   作者:Szr維  
這篇文章主要介紹了springboot2.2.2集成dubbo的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

最近在學(xué)習(xí)dubbo,想著作一些筆記,從來沒有在csdn上面寫過博客,今天獻(xiàn)出第一次,哈哈,直接上代碼

一、創(chuàng)建父工程

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.2.RELEASE</version>
    <relativePath/>
  </parent>

  <groupId>com.dubbo</groupId>
  <artifactId>demo01</artifactId>
  <version>1.0.0</version>
  <packaging>pom</packaging>
  <description>Spring Boot2.x 整合 dubbo</description>

  <modules>
    <module>api</module>
    <module>provider</module>
    <module>consumer</module>
  </modules>

  <!--統(tǒng)一管理依賴版本-->
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <dubbo.version>2.7.5</dubbo.version>
    <curator.version>4.2.0</curator.version>
    <!-- 連接zookeeper的依賴,我的zookeeper版本是3.4.14,感覺這個(gè)jar版本和zookeeper是大概保持一致的,但是引入3.4.14會(huì)報(bào)錯(cuò),我試了下,從3.4.13開始就不行了 -->
    <zookeeper.version>3.4.12</zookeeper.version>
  </properties>

  <!--依賴定義-->
  <!--dependencyManagement 定義依賴版本號(hào)。子工程直接加依賴即可,不需要再次加版本號(hào),便于統(tǒng)一維護(hù)版本號(hào)-->
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.apache.dubbo</groupId>
        <artifactId>dubbo-spring-boot-starter</artifactId>
        <version>${dubbo.version}</version>
      </dependency>
  <!-- zookeeper的api管理依賴 -->
      <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-recipes</artifactId>
        <version>${curator.version}</version>
      </dependency>
  <!-- zookeeper依賴 -->
      <dependency>
        <groupId>org.apache.zookeeper</groupId>
        <artifactId>zookeeper</artifactId>
        <version>${zookeeper.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-devtools</artifactId>
      <scope>runtime</scope>
      <optional>true</optional>
    </dependency>
    <!-- 使用該依賴,idea需要安裝插件,沒有用過的自行百度一下吧 -->
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <optional>true</optional>
    </dependency>
  </dependencies>
</project>

二、創(chuàng)建提供者與消費(fèi)者共用的api

該模塊沒有什么好說的,提供者和消費(fèi)者都需要使用的接口api,提供者和消費(fèi)者都需要引入該模塊

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <parent>
    <artifactId>demo01</artifactId>
    <groupId>com.dubbo</groupId>
    <version>1.0.0</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>

  <artifactId>api</artifactId>


</project>

// 注解都是lombok的,真的很方便
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor(access = AccessLevel.PRIVATE)
public class User implements Serializable {
  private Integer id;
  private String name;
  private Integer age;
}
public interface UserService {
  User getUserById(Integer id);
}

三、創(chuàng)建提供者

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.dubbo</groupId>
    <version>1.0.0</version>
    <artifactId>demo01</artifactId>
  </parent>

  <groupId>com.dubbo</groupId>
  <artifactId>provider</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>provider</name>
  <description>Demo project for Spring Boot</description>

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.dubbo</groupId>
      <artifactId>dubbo-spring-boot-starter</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.curator</groupId>
      <artifactId>curator-recipes</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.zookeeper</groupId>
      <artifactId>zookeeper</artifactId>
    </dependency>
    <!-- 導(dǎo)入公共接口依賴 -->
    <dependency>
      <groupId>com.dubbo</groupId>
      <artifactId>api</artifactId>
      <version>1.0.0</version>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>org.junit.vintage</groupId>
          <artifactId>junit-vintage-engine</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

</project>

dubbo:
 application:
  # 應(yīng)用名稱
  name: user-provider
 protocol:
  # 協(xié)議名稱
  name: dubbo
  # 協(xié)議端口
  port: 20880
 registry:
  # 注冊(cè)中心地址
  address: zookeeper://192.168.104.231:2181

@SpringBootApplication
// 提供服務(wù)的應(yīng)用必須配置此項(xiàng)
@DubboComponentScan("com.dubbo.provider.service")
public class ProviderApplication {

  public static void main(String[] args) {
    SpringApplication.run(ProviderApplication.class, args);
  }

}

@Component
// 該service是org.apache.dubbo.config.annotation.Service
@Service
public class UserServiceImpl implements UserService {
  @Override
  public User getUserById(Integer id) {
    User user = User.builder()
        .id(id)
        .name("張三")
        .age(20 + id)
        .build();

    return user;
  }
}

四、創(chuàng)建消費(fèi)者

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.dubbo</groupId>
    <version>1.0.0</version>
    <artifactId>demo01</artifactId>
  </parent>

  <groupId>com.dubbo</groupId>
  <artifactId>consumer</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>consumer</name>
  <description>Demo project for Spring Boot</description>

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.dubbo</groupId>
      <artifactId>dubbo-spring-boot-starter</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.curator</groupId>
      <artifactId>curator-recipes</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.zookeeper</groupId>
      <artifactId>zookeeper</artifactId>
    </dependency>

    <!-- 導(dǎo)入公共接口依賴 -->
    <dependency>
      <groupId>com.dubbo</groupId>
      <artifactId>api</artifactId>
      <version>1.0.0</version>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>org.junit.vintage</groupId>
          <artifactId>junit-vintage-engine</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

</project>

# 端口
server:
 port: 8081
dubbo:
 application:
  name: user-consumer
 protocol:
  name: dubbo
  port: 20880
 registry:
  address: zookeeper://192.168.104.231:2181

@SpringBootApplication

public class ConsumerApplication {

  public static void main(String[] args) {
    SpringApplication.run(ConsumerApplication.class, args);
  }

}
@RestController
@RequestMapping("/user")
public class ConsumerController {
  @Reference
  private UserService userService;

  @GetMapping("/{id}")
  public User getUserById(@PathVariable int id) {
    return userService.getUserById(id);
  }
}

五、啟動(dòng)并訪問

先啟動(dòng)provider,啟動(dòng)結(jié)果如下

啟動(dòng)consumer,啟動(dòng)結(jié)果如下

瀏覽器訪問:http://localhost:8081/user/4

好了,到此就完成了最基本的springboot與dubbo的整合,更多的dubbo的api請(qǐng)查閱 dubbo官方文檔

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

相關(guān)文章

  • 使用logback實(shí)現(xiàn)按自己的需求打印日志到自定義的文件里

    使用logback實(shí)現(xiàn)按自己的需求打印日志到自定義的文件里

    這篇文章主要介紹了使用logback實(shí)現(xiàn)按自己的需求打印日志到自定義的文件里,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • maven搭建java ee項(xiàng)目圖文教程

    maven搭建java ee項(xiàng)目圖文教程

    這篇文章主要為大家詳細(xì)介紹了maven搭建java ee項(xiàng)目圖文教程,感興趣的小伙伴們可以參考一下
    2016-04-04
  • Java反射機(jī)制介紹

    Java反射機(jī)制介紹

    Java的反射機(jī)制是在運(yùn)行狀態(tài)中,對(duì)于任何一個(gè)類,都可以知道這個(gè)類的所有屬性和方法,對(duì)于任何一個(gè)對(duì)象,都可以調(diào)用它所有的方法和屬性,修改部分類型信息,這種動(dòng)態(tài)獲取信息以及動(dòng)態(tài)調(diào)用對(duì)象方法的功能稱為Java的反射機(jī)制
    2022-08-08
  • Mybatis #foreach中相同的變量名導(dǎo)致值覆蓋的問題解決

    Mybatis #foreach中相同的變量名導(dǎo)致值覆蓋的問題解決

    本文主要介紹了Mybatis #foreach中相同的變量名導(dǎo)致值覆蓋的問題解決,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Java回調(diào)機(jī)制解讀

    Java回調(diào)機(jī)制解讀

    本文主要介紹了Java回調(diào)機(jī)制的相關(guān)知識(shí),具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-02-02
  • java實(shí)現(xiàn)24點(diǎn)游戲

    java實(shí)現(xiàn)24點(diǎn)游戲

    每次取出4張牌,使用加減乘除,第一個(gè)能得出24者為贏,這篇文章主要就為大家詳細(xì)介紹了java實(shí)現(xiàn)24點(diǎn)游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • java中的分布式事務(wù)解決方式

    java中的分布式事務(wù)解決方式

    分布式事務(wù)是分布式系統(tǒng)中確保數(shù)據(jù)一致性的重要機(jī)制,它涉及多個(gè)數(shù)據(jù)源或參與者,要么所有操作全部成功,要么全部失敗,常見的解決方案包括2PC(兩階段提交協(xié)議)、3PC(三階段提交協(xié)議)和TCC(Try-Confirm-Cancel),2PC雖然簡(jiǎn)單但存在單點(diǎn)故障等問題
    2024-09-09
  • Java使用PDFBox實(shí)現(xiàn)操作PDF文檔

    Java使用PDFBox實(shí)現(xiàn)操作PDF文檔

    這篇文章主要為大家詳細(xì)介紹了Java如何使用PDFBox實(shí)現(xiàn)操作PDF文檔,例如添加本地圖片、添加網(wǎng)絡(luò)圖片、圖片寬高自適應(yīng)、圖片水平垂直居中對(duì)齊等功能,需要的可以了解下
    2024-03-03
  • Spring框架AOP基礎(chǔ)之代理模式詳解

    Spring框架AOP基礎(chǔ)之代理模式詳解

    代理模式(Proxy Parttern)為一個(gè)對(duì)象提供一個(gè)替身,來控制這個(gè)對(duì)象的訪問,即通過代理對(duì)象來訪問目標(biāo)對(duì)象。本文將通過示例詳細(xì)講解一下這個(gè)模式,需要的可以參考一下
    2022-11-11
  • 通過java字節(jié)碼分析學(xué)習(xí)對(duì)象初始化順序

    通過java字節(jié)碼分析學(xué)習(xí)對(duì)象初始化順序

    今天用了jmock對(duì)進(jìn)行單元測(cè)試編碼,發(fā)現(xiàn)一個(gè)比較奇怪的語法,static使用方法,見下面例子
    2013-11-11

最新評(píng)論

星子县| 乌恰县| 二连浩特市| 孟州市| 仲巴县| 桂阳县| 禹城市| 临邑县| 北宁市| 积石山| 砚山县| 余江县| 明水县| 丰城市| 新宾| 扶绥县| 天长市| 鸡西市| 沁水县| 贡嘎县| 衡东县| 苏尼特右旗| 屏东市| 宁国市| 禄劝| 榆树市| 南丹县| 介休市| 封丘县| 施秉县| 五大连池市| 静安区| 乳山市| 孝感市| 射洪县| 绥江县| 平安县| 嘉黎县| 林芝县| 台北县| 龙胜|