iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >SpringBoot项目集成Dubbo
  • 393
分享到

SpringBoot项目集成Dubbo

dubbospringbootjava 2023-08-25 08:08:51 393人浏览 八月长安
摘要

1.环境搭建 为整合dubbo之前,我们所写的项目都是单一应用架构,只需要一个应用,将所有功能都部署在一起,在应用内部是控制层调用业务层,业务层调用数据持久层;如今,整合Dubbo后,我们可以将应用程序的不同功能单元进行拆分(将控制层、业务

1.环境搭建

为整合dubbo之前,我们所写的项目都是单一应用架构,只需要一个应用,将所有功能都部署在一起,在应用内部是控制层调用业务层,业务层调用数据持久层;如今,整合Dubbo后,我们可以将应用程序的不同功能单元进行拆分(将控制层、业务层以及数据持久层拆分),各个服务之间通过rpc通信!
下面,我们就开始在SpringBoot项目中集成Dubbo;首先我们需要创建一个空项目,在空项目中创建三个模块,分别定义工程。服务提供者以及服务消费者!
接口工程:存放pojo实体和业务接口;
服务提供者: 存放业务接口的实现类并将服务暴露到注册中心,并调用数据持久层;
服务消费者:处理浏览器客户端发送的请求,从注册中心调用服务提供者所提供的服务。

1.创建一个空项目

打开idea,单击文件,选择新建,点击项目,最后选择空项目,具体如下所示:
在这里插入图片描述

2.创建接口工程模块

由于接口工程只需要存放一个pojo实体类和抽象的业务接口,因此创建一个普通的Maven项目即可!
打开IDEA,单击文件,选择新建,点击新模块。具体如下所示:
在这里插入图片描述
紧接着按照自己的方式选择模块名称和位置,具体如下所示:最后点击完成!
在这里插入图片描述

3.创建服务提供者模块

创建服务提供者需要依托一个springBoot项目,因此我们首先要创建一个SpringBoot项目。具体步骤如下,
打开IDEA,单击文件,选择新建,点击新模块。具体如下所示:
在这里插入图片描述

点击下一步后选择Spring WEB依赖即可完成创建!

4.创建服务消费者模块

服务消费者模块与服务提供者模块大同小异,按照创建服务提供者的方式创建即可,更换一下服务消费者的模块名称即可完成创建,具体如下所示:
在这里插入图片描述

2.接口工程中抽象接口的编写

在dubbo-springboot-interfaces模块中创建一个UserService接口,具体如下所示:

public interface UserService {    int getCount();//获取当前网站在线人数}

3.服务提供者模块的编写

1.导入服务提供者所需的依赖

<dependency>            <groupId>org.apache.curatorgroupId>            <artifactId>curator-frameworkartifactId>            <version>2.8.0version>        dependency>        <dependency>            <groupId>org.apache.curatorgroupId>            <artifactId>curator-recipesartifactId>            <version>2.8.0version>        dependency>        <dependency>            <groupId>com.alibaba.spring.bootgroupId>            <artifactId>dubbo-spring-boot-starterartifactId>            <version>2.0.0version>        dependency>        <dependency>            <groupId>com.101tecgroupId>            <artifactId>zkclientartifactId>            <version>0.10version>            <exclusions>                <exclusion>                    <artifactId>slf4j-log4j12artifactId>                    <groupId>org.slf4jgroupId>                exclusion>                <exclusion>                    <artifactId>ZooKeeperartifactId>                    <groupId>org.apache.zookeepergroupId>                exclusion>            exclusions>        dependency>                <dependency>            <groupId>com.xinggroupId>            <artifactId>dubbo-springboot-interfacesartifactId>            <version>1.0-SNAPSHOTversion>        dependency>        <dependency>            <groupId>org.springframework.bootgroupId>            <artifactId>spring-boot-starter-webartifactId>        dependency>

2.编写服务提供者配置文件

这里需要注意,spring.dubbo.server=true代表该模块是服务的提供者,spring.dubbo.reGIStry配置的是zookeeper的IP和端口,因此启动项目的前提是要在Linux系统中开启zookeeper!

# 应用名称spring.application.name=dubbo-springboot-provider# 应用服务 WEB 访问端口server.port=8081# 设置上下文根server.servlet.context-path=/#dubbo配置spring.dubbo.server=true# 设置注册中心spring.dubbo.registry=zookeeper://IP:2181

3.实现接口工程中的抽象接口

这里需要注意的是,我们需要导入的@Service是com.alibaba.dubbo.config.annotation包下的,同时需要使用@Component将此类装入spring容器中,这里并未调用真实的数据持久层,只是模拟调用!

package com.xing.dubbospringbootprovider.service.impl;import com.alibaba.dubbo.config.annotation.Service;import com.xing.dubbospringbootconsumer.service.UserService;import org.springframework.stereotype.Component;@Component@Service(interfaceClass = UserService.class,version = "2.6.0",timeout = 15000)public class UserServiceImpl implements UserService {    @Override    public int getCount() {        //调用数据持久层        return 1024;    }}

4.在服务提供者主启动类上开启Dubbo配置

在模块主启动类上加上@EnableDubboConfiguration即可以开启开启dubbo配置!

package com.xing.dubbospringbootprovider;import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication@EnableDubboConfiguration //开启dubbo配置public class DubboSpringbootProviderApplication {    public static void main(String[] args) {        SpringApplication.run(DubboSpringbootProviderApplication.class, args);    }}

3.服务消费者模块的编写

1.导入服务消费者所需的依赖

这里所需要的依赖与服务提供者相同,这里就不过多展示了,有需要的可以拷贝服务提供者所展示的依赖。

2.编写服务消费者配置文件

这里配置文件中的IP需要更换为自己购买的阿里云服务器的IP;

# 应用名称spring.application.name=dubbo-springboot-consumer# 应用服务 WEB 访问端口server.port=8083# 配置上下文根server.servlet.context-path=/# 配置注册中心spring.dubbo.registry=zookeeper://IP:2181

3.编写控制层代码

消费者使用@Reference(interfaceClass = UserService.class,version = “2.6.0”,check = false)注解,从注册中心调用服务提供者所提供的服务。

package com.xing.dubbospringbootconsumer.controller;import com.alibaba.dubbo.config.annotation.Reference;import com.xing.dubbospringbootconsumer.service.UserService;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;@Controllerpublic class UserController {    @Reference(interfaceClass = UserService.class,version = "2.6.0",check = false)    private UserService userService;        @RequestMapping("/count")    @ResponseBody    public String getCount(){        int count=userService.getCount();        return "当前在线的人数为:"+count;    }}

4.在服务消费者主启动类上开启Dubbo配置

package com.xing.dubbospringbootconsumer;import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication@EnableDubboConfiguration //开启Dubbo配置public class DubboSpringbootConsumerApplication {    public static void main(String[] args) {        SpringApplication.run(DubboSpringbootConsumerApplication.class, args);    }}

4.开启zookeeper服务

这里就不详细讲解如何安装zookeeper了,有需要的读者可以自己去网上下载并配置环境!

cd /opt/zookeeper/apache-zookeeper-3.5.6-bin/bin/# 启动zookeeper./zkServer.sh start

可以通过./zkServer.sh status查看是否启动成功,出现以下数据即启动成功!
在这里插入图片描述

5.修改IDEA的环境配置

这里需要注意,我们创建的模块,默认的目标字节码版本是5,我们需要修改为8,否则可能会出现内部Java编译器错误;
在这里插入图片描述
同时,如果启动项目发现出现Class path contains multiple SLF4J bindings.的问题,可以参考我使用maven Helper解决问题的办法,解决问题的文档

最后,如果需要同时启动多个SpringBoot实例,这里需要修改IDEA启动的配置,具体如下所示:
点击编辑配置,勾选允许并运行的选项即可,同时,每个不同的模块需要设置不同的端口号,否则同样是不能同时运行的!
在这里插入图片描述
最后,解决所有问题后,运行的效果如下所示:
在这里插入图片描述

来源地址:https://blog.csdn.net/qq_51447436/article/details/128071391

--结束END--

本文标题: SpringBoot项目集成Dubbo

本文链接: https://www.lsjlt.com/news/380029.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringBoot项目集成Dubbo
    1.环境搭建 为整合Dubbo之前,我们所写的项目都是单一应用架构,只需要一个应用,将所有功能都部署在一起,在应用内部是控制层调用业务层,业务层调用数据持久层;如今,整合Dubbo后,我们可以将应用程序的不同功能单元进行拆分(将控制层、业务...
    99+
    2023-08-25
    dubbo spring boot java
  • springboot集成dubbo的方法
    这篇“springboot集成dubbo的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“springboot集成dubb...
    99+
    2023-06-29
  • SpringBoot项目如何集成FTP
    小编给大家分享一下SpringBoot项目如何集成FTP,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!FTP相关软件安装我在此就不介绍如何安装FTP了,但是我可以推荐给大家一些软件作为选择。Linux版本,推荐使用vsft...
    99+
    2023-06-25
  • springboot 集成dubbo的步骤详解
    目录第一步 搭建zookeeper环境第二步 springboot集成dubbo1.项目目录机构2.代码编写2.1 api目录2.2 consumer目录 web访问、接口调用以及d...
    99+
    2024-04-02
  • SpringBoot项目里怎么集成Hibernate
    本篇内容介绍了“SpringBoot项目里怎么集成Hibernate”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在Spring Boot项...
    99+
    2023-07-05
  • SpringBoot集成Dubbo启用gRPC协议
    目录前言项目结构代码示例父工程api moduleservice module注意事项区别前言 Dubbo 在 2.7.5 版本开始支持原生 gRPC 协议,对于计划使用 HTTP/...
    99+
    2023-05-15
    SpringBoot集成Dubbo SpringBoot启用gRPC协议 SpringBoot Dubbo
  • SpringBoot项目里集成Hibernate的示例
    目录在Spring Boot项目中集成Hibernate前言1.引入依赖2.配置数据源3. 创建实体类4.创建Repository5.编写业务代码6.编写控制器,处理http请求7....
    99+
    2023-05-14
    SpringBoot集成Hibernate SpringBoot Hibernate
  • SpringBoot项目集成Flyway详细过程
    目录一、Flyway二、流程2.1 导入依赖2.2 配置yml2.3 创建sql脚本2.4 启动项目2.5 常见问题一、Flyway Flyway是独立于数据库的应用、管理...
    99+
    2024-04-02
  • SpringBoot项目集成Flyway的示例分析
    这篇文章给大家分享的是有关SpringBoot项目集成Flyway的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、FlywayFlyway是独立于数据库的应用、管理并跟踪数据库变更的数据库版本管理工具...
    99+
    2023-06-15
  • SpringBoot项目集成xxljob实现全纪录
    目录xxljob介绍代码配置过程1.引入xxl-job的依赖2.编写配置文件3.编写配置类4.新建Job文件夹,将自己写的类放到此文件夹下5.编写业务代码登录xxl-Job并配置1....
    99+
    2024-04-02
  • SpringBoot项目集成xxljob的示例分析
    小编给大家分享一下SpringBoot项目集成xxljob的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!xxljob介绍XXL-JOB是一个分布式任务调...
    99+
    2023-06-25
  • SpringBoot项目集成FTP的方法步骤
    目录写在前面FTP相关软件安装开始集成引入相关jar包引入FTPUtils.java和FTPHelper.java如何使用写在前面 FTP是一个文件传输协议,被开发人员广泛用于在互...
    99+
    2024-04-02
  • IDEA集成docker部署springboot项目的全过程
    目录1.IDEA下载docker插件2.云服务器docker2.1 docker的安装2.2 停止docker服务2.3 docker配置文件修改2.4 刷新配置文件2.5 启动do...
    99+
    2024-04-02
  • springboot微服务项目集成html页面的实现
    目录1, 在 pom.xml 中添加以下依赖:2, 在 application.properties 中添加以下配置:3,创建 HTML 模板文件4,创建控制器5, 添加依赖6,配置...
    99+
    2023-05-14
    springboot集成html页面 springboot html页面
  • SpringBoot集成mqtt的多模块项目配置详解
    目录前言开发工具及系统环境项目路径配置过程1. 搭建父项目2. 搭建子项目3. 配置各个模块4. 配置MQTT模块前言 近期为了准备毕设,准备使用SpringBoot搭建mqtt后端...
    99+
    2024-04-02
  • 【Log日志】springboot项目中集成Log日志详解
    springboot项目中集成Log日志详解 一、Log日志介绍1.Log 日志组件主要作用及用途2.日志的级别Level级别控制 3.日志的输出Import3.1 快速使用3.2 日志文件输出3.3 自定义配置 4. ...
    99+
    2023-08-23
    spring boot java spring Log 日志
  • k8s集群部署springboot项目
    一、前言 本篇,我们将基于k8s集群,模拟一个比较接近实际业务的使用场景,使用k8s集群部署一个springboot的项目,我们的需求是: 部署SpringBoot项目到阿里云服务器 ; 基于容器打包,推送私有镜像仓库 ; 采用K8S集群...
    99+
    2023-09-06
    k8s集群部署java应用 k8s部署springboot k8s部署java应用 k8s部署微服务项目 k8s部署微服务
  • ASP.NETCore项目中集成TypeScript
    今天试了下在Asp.net core中集成typescript,发现vs2019对typescript集成的支持还是非常友好的。本文在这里简单的介绍一下。 由于typescript文...
    99+
    2024-04-02
  • springboot微服务项目集成html页面怎么实现
    这篇“springboot微服务项目集成html页面怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“springboo...
    99+
    2023-07-05
  • SpringBoot怎么搭建Dubbo项目实现斐波那契第n项
    这篇文章主要介绍“SpringBoot怎么搭建Dubbo项目实现斐波那契第n项”,在日常操作中,相信很多人在SpringBoot怎么搭建Dubbo项目实现斐波那契第n项问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作