本文使用的是alibaba的Dubbo。

Dubbo整合Springboot可以分为四步:

第一步:首先需要了解Dubbo官方给的建议,至少有三个工程:

接口工程:主要存实体bean和业务接口

服务提供者:业务接口的实现类和调用数据持久层,并将服务注册到注册中心

服务消费者:处理浏览器客户端发送的请求和从注册中心调用服务提供者提供的服务

上面的听起来很拗口,我们来实现一个工程试试。

首先,创建上述的三个工程:

这里要注意:interface创建Maven项目就好了。其他两个是springboot项目。

第二步:添加POM依赖

<!--alibaba的Dubbo集成springboot依赖-->
<dependency>
<groupId>com.alibaba.spring.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency> <dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
<version>0.10</version>
</dependency>
    
<dependency>
<groupId>com.kunkun.springboot</groupId>
<artifactId>05-springboot-dubbo-interface</artifactId>
<version>1.0.0</version>
</dependency>

这边主要有三个依赖:alibaba的dubbo集成springboot依赖和zookeeper依赖,以及我们的接口工程的依赖。

这里的依赖在服务提供者和消费者的pom文件中都需要添加。

第三步:添加配置

服务提供者的application.properties:

#springboot的应用名称(不能少,可以变)
spring.application.name=05-springboot-dubbo-provider
#是否是dubbo服务端(服务提供者)
spring.dubbo.server = true
#dubbo的注册中心,如果位N/A表示不使用注册中心
#我们使用zookeeper
spring.dubbo.registry = zookeeper://127.0.0.1:2181

服务消费者的配置:

#springboot的应用名称(不能少,可以变)
spring.application.name=05-springboot-dubbo-consumer #dubbo的注册中心,如果位N/A表示不使用注册中心
#我们使用zookeeper
spring.dubbo.registry = zookeeper://127.0.0.1:2181

第四步:写代码

首先,是接口项目的代码:

@Data
public class Student implements Serializable { private static final long serialVersionUID = -302975163235439602L; private Integer id;
private String name;
private Integer age; public Student(Integer id,String name,Integer age){
this.age = age;
this.id = id;
this.name = name;
}
}
import com.kunkun.springboot.model.Student;

public interface StudentService {
public Student getStudentById(); }

然后是服务提供者的代码:

//dubbo的service
@Component //表示我这个类是spring的一个bean
@Service(timeout = 100,retries = 1)//相当于原来用xml中<dubbo:service interface="xxx" , ref = "xxx">
public class StudentServiceImpl implements StudentService { @Override
public Student getStudentById() {
return new Student(1,"zhangsan",10);
} }

这边需要注意的就是注解@Service需要使用的是dubbo的service,不可以使用spring的@Service。

最后是服务消费者的代码:就是完成请求过来的处理

@RestController
public class StudentController {
@Reference
private StudentService studentService; @RequestMapping("/")
public Object student(){
return studentService.getStudentById();
}
}

这边需要注意的就是@AutoWired要换成@Reference

最后,需要在Application上面加上@EnableDubboConfiguration

@SpringBootApplication
@EnableDubboConfiguration
public class Application { public static void main(String[] args) {
SpringApplication.run(Application.class, args);
} }

Dubbo整合Springboot框架的更多相关文章

  1. dubbo入门学习(三)-----dubbo整合springboot

    springboot节省了大量的精力去配置各种bean,因此通过一个简单的demo来整合springboot与dubbo 一.创建boot-user-service-provider 本篇博文基于上篇 ...

  2. dubbo+zookeeper+springBoot框架整合与dubbo泛型调用演示

    dubbo + zookeeper + spring Boot框架整合与dubbo泛型调用演示   By:客 授客 QQ:1033553122  欢迎加入全国软件测试交流 QQ  群:7156436 ...

  3. Dubbo整合SpringBoot

    目前的dubbo已支持和springboot集成,还是之前的例子,这次我们通过springboot容器来实现.借此了解一下基于springboot容器启动的dubbo的配置及使用. 1. 准备工作 创 ...

  4. dubbo整合springboot最详细入门教程

    说明 目前互联网公司,大部分项目都是基于分布式,一个项目被拆分成几个小项目,这些小项目会分别部署在不同的计算机上面,这个叫做微服务.当一台计算机的程序需要调用另一台计算机代码的时候,就涉及远程调用.此 ...

  5. SpringBoot与Dubbo整合的三种方式

    1. 使用默认application.properties和注解的方式 导入dubbo-starter,在application.properties配置属性,使用@Service注解来暴露服务,使用 ...

  6. 手把手教你Dubbo与SpringBoot常用两种方式整合

    一.Dubbo整合SpringBoot的方式(1) 1)直奔主题,方式一: pom.xml中引入dubbo-starter依赖,在application.properties配置属性,使用@Servi ...

  7. 整合springboot(app后台框架搭建四)

    springboot可以说是为了适用SOA服务出现,一方面,极大的简便了配置,加速了开发速度:第二方面,也是一个嵌入式的web服务,通过jar包运行就是一个web服务: 还有提供了很多metric,i ...

  8. 【SpringBoot】搜索框架ElasticSearch介绍和整合SpringBoot

    ========================12章 搜索框架ElasticSearch介绍和整合SpringBoot ============================= 加入小D课堂技术交 ...

  9. 搭建SpringBoot+dubbo+zookeeper+maven框架(二)

    上一篇文章是关于搭建SpringBoot+dubbo+zookeeper+maven框架的,但是里面的功能还不够完善,今天就日志管理方面做一些改善. 下了demo的网友可能会发现项目在启动时会有警告: ...

随机推荐

  1. SonarQube+Jenkins+Cppcheck实现C++代码扫描

    背景:公司部分项目是由C++进行开发,因此对此有需求. sonarqube:docker化安装(alpine系统),版本8.3.1 (build 34397) jenkins:docker化安装,版本 ...

  2. 初识:LevelDB

    初识:LevelDB 上篇文章缘起:BigTable可以说是已经把论文Bigtable: A Distributed Storage System for Structured Data中的内容掰扯的 ...

  3. Web Scraping using Python Scrapy_BS4 - Introduction

    What is Web Scraping This is also referred to as web harvesting and web data extraction. This is the ...

  4. 网课神器之obs-studio的安装使用

    obs-studio 首先,下载obs-studio安装文件,然后点击安装. 建议安装完后直接跳过配置,然后进入文件-设置-通用-系统托盘-勾选"总是最小化到系统托盘,而不是任务栏" ...

  5. 小白必看,Python入门你要懂那些

    Python作为为数不多的全场景开发语言之一,近年来已经获得了越来越多人的关注,而整个IT行业也释放出了大量的Python就业岗位.因此,当前学习Python语言是非常不错的选择,文泽带你进一步走进P ...

  6. 今天上午完成了devicescan,发送了rar包到yzx3233@sina.com

    今天上午完成了devicescan,发送了rar包到yzx3233@sina.com 可以正常扫描和输入了. 还有一个最后的问题,就是选择退出后,程序还在后台

  7. python学习之路------你想要的都在这里了

    python学习之路------你想要的都在这里了 (根据自己的学习进度后期不断更新哟!!!) 一.python基础 1.python基础--python基本知识.七大数据类型等 2.python基础 ...

  8. phpcms根据二级栏目列表写的三级栏目列表

    <div class="container"> <!--左边树状导航--> <div class="CNLTreeMenu" id ...

  9. springboot2.2 集成 activity6 请假完整示例

    新手学习记录.写在springboot test 示例  示例代码地址看结尾.后面有带页面的示例. SpringBoot Test无页面简单示例 员工请假流程 员工发起申请,附带请假信息(请假几天) ...

  10. jmeter单接口和多接口测试

    @@@@@@@@@@@@@@@ # 路漫漫其修远 最近接触到了多接口串联,接口串联的技术会在其他帖子有说明,其核心技术点就是通过正则表达式和变量来实现接口的关联.目前为止呢笔者用到的地方还只有一个,就 ...