热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

springboot2.2.2集成dubbo的实现方法

这篇文章主要介绍了springboot2.2.2集成dubbo的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

最近在学习dubbo,想着作一些笔记,从来没有在csdn上面写过博客,今天献出第一次,哈哈,直接上代码

一、创建父工程

<&#63;xml version="1.0" encoding="UTF-8"&#63;>

  4.0.0
  
    org.springframework.boot
    spring-boot-starter-parent
    2.2.2.RELEASE
    
  

  com.dubbo
  demo01
  1.0.0
  pom
  Spring Boot2.x 整合 dubbo

  
    api
    provider
    consumer
  

  
  
    UTF-8
    UTF-8
    1.8
    2.7.5
    4.2.0
    
    3.4.12
  

  
  
  
    
      
        org.apache.dubbo
        dubbo-spring-boot-starter
        ${dubbo.version}
      
  
      
        org.apache.curator
        curator-recipes
        ${curator.version}
      
  
      
        org.apache.zookeeper
        zookeeper
        ${zookeeper.version}
      
    
  

  
    
      org.springframework.boot
      spring-boot-devtools
      runtime
      true
    
    
    
      org.projectlombok
      lombok
      true
    
  


二、创建提供者与消费者共用的api

该模块没有什么好说的,提供者和消费者都需要使用的接口api,提供者和消费者都需要引入该模块

<&#63;xml version="1.0" encoding="UTF-8"&#63;>

  
    demo01
    com.dubbo
    1.0.0
  
  4.0.0

  api




// 注解都是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);
}

三、创建提供者

<&#63;xml version="1.0" encoding="UTF-8"&#63;>

  4.0.0
  
    com.dubbo
    1.0.0
    demo01
  

  com.dubbo
  provider
  0.0.1-SNAPSHOT
  provider
  Demo project for Spring Boot

  
    
      org.springframework.boot
      spring-boot-starter-web
    

    
      org.apache.dubbo
      dubbo-spring-boot-starter
    

    
      org.apache.curator
      curator-recipes
    

    
      org.apache.zookeeper
      zookeeper
    
    
    
      com.dubbo
      api
      1.0.0
    

    
      org.springframework.boot
      spring-boot-starter-test
      test
      
        
          org.junit.vintage
          junit-vintage-engine
        
      
    
  

  
    
      
        org.springframework.boot
        spring-boot-maven-plugin
      
    
  



dubbo:
 application:
  # 应用名称
  name: user-provider
 protocol:
  # 协议名称
  name: dubbo
  # 协议端口
  port: 20880
 registry:
  # 注册中心地址
  address: zookeeper://192.168.104.231:2181

@SpringBootApplication
// 提供服务的应用必须配置此项
@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;
  }
}

四、创建消费者

<&#63;xml version="1.0" encoding="UTF-8"&#63;>

  4.0.0
  
    com.dubbo
    1.0.0
    demo01
  

  com.dubbo
  consumer
  0.0.1-SNAPSHOT
  consumer
  Demo project for Spring Boot

  
    
      org.springframework.boot
      spring-boot-starter-web
    

    
      org.apache.dubbo
      dubbo-spring-boot-starter
    

    
      org.apache.curator
      curator-recipes
    

    
      org.apache.zookeeper
      zookeeper
    

    
    
      com.dubbo
      api
      1.0.0
    

    
      org.springframework.boot
      spring-boot-starter-test
      test
      
        
          org.junit.vintage
          junit-vintage-engine
        
      
    
  

  
    
      
        org.springframework.boot
        spring-boot-maven-plugin
      
    
  



# 端口
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);
  }
}

五、启动并访问

先启动provider,启动结果如下

启动consumer,启动结果如下

浏览器访问:http://localhost:8081/user/4

好了,到此就完成了最基本的springboot与dubbo的整合,更多的dubbo的api请查阅 dubbo官方文档

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


推荐阅读
  • 近期我们开发了一款包含天气预报功能的万年历应用,为了满足这一需求,团队花费数日时间精心打造并测试了一个稳定可靠的天气API接口,现正式对外开放。 ... [详细]
  • 在Linux系统上构建Web服务器的详细步骤
    本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ... [详细]
  • Java EE CDI:解决依赖关系冲突的实例
    在本教程中,我们将探讨如何在Java EE的CDI(上下文和依赖注入)框架中有效解决依赖关系的冲突问题。通过学习如何使用限定符,您将能够为应用程序的不同客户端提供多种接口实现,并确保每个客户端都能正确调用其所需的实现。 ... [详细]
  • 本文探讨了如何在Classic ASP中实现与PHP的hash_hmac('SHA256', $message, pack('H*', $secret))函数等效的哈希生成方法。通过分析不同实现方式及其产生的差异,提供了一种使用Microsoft .NET Framework的解决方案。 ... [详细]
  • Spring Boot 中静态资源映射详解
    本文深入探讨了 Spring Boot 如何简化 Web 应用中的静态资源管理,包括默认的静态资源映射规则、WebJars 的使用以及静态首页的处理方法。通过本文,您将了解如何高效地管理和引用静态资源。 ... [详细]
  • 百度安全应急响应中心(BSRC)与补天漏洞响应平台共同举办2021年暑期挑战赛,提供丰厚奖励、联名证书及更多惊喜。活动时间从7月12日至7月31日。 ... [详细]
  • 本文介绍了一个基于 Java SpringMVC 和 SSM 框架的综合系统,涵盖了操作日志记录、文件管理、头像编辑、权限控制、以及多种技术集成如 Shiro、Redis 等,旨在提供一个高效且功能丰富的开发平台。 ... [详细]
  • 解决Spring Boot项目创建失败的问题
    在尝试创建新的Spring Boot项目时遇到了一些问题,具体表现为在项目创建过程中的两个关键步骤出现错误。本文将详细探讨这些问题及其解决方案。 ... [详细]
  • 深入解析Hadoop的核心组件与工作原理
    本文详细介绍了Hadoop的三大核心组件:分布式文件系统HDFS、资源管理器YARN和分布式计算框架MapReduce。通过分析这些组件的工作机制,帮助读者更好地理解Hadoop的架构及其在大数据处理中的应用。 ... [详细]
  • JMeter接口关联与数据提取:正则表达式和JSON Extractor的使用
    在使用JMeter进行接口测试时,常常需要从前一个接口的响应中提取数据并应用于后续请求。本文将详细介绍如何利用正则表达式提取器(Regular Expression Extractor)和JSON Extractor来实现这一需求。 ... [详细]
  • 本文详细介绍了如何正确安装Java EE SDK,并解决在安装过程中可能遇到的问题,特别是关于servlet代码在Apache Tomcat 10中无法运行的情况。 ... [详细]
  • 在使用Maven进行项目构建时,由于依赖库的下载速度慢常常让人感到沮丧,这直接影响了开发效率和学习热情。幸运的是,阿里云提供了一个快速的国内镜像服务,能够显著提升Maven项目的构建速度。 ... [详细]
  • window下kafka的安装以及测试
    目录一、安装JDK(需要安装依赖javaJDK)二、安装Kafka三、测试参考在Windows系统上安装消息队列kafka一、安装JDKÿ ... [详细]
  • 本文详细介绍了使用ZooKeeper构建高可用集群的方法,包括必要的软件环境准备、配置文件调整及集群启动等关键步骤。通常,一个ZooKeeper集群由奇数个节点组成,以确保Leader选举的有效性。 ... [详细]
  • 本文详细介绍了如何在 Windows Server 2008 R2 64位操作系统上配置 BugFree 3.0.3 的服务器环境,包括所需软件的安装与配置步骤。 ... [详细]
author-avatar
心若繁花花满地
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有