本文使用的是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. 字符编码-Unicode、Utf-8 笔记

    Unicode 将世界上所有的符号都纳入其中.每一个符号都给予一个独一无二的编码,那么乱码问题就会消失.这就是 Unicode,就像它的名字都表示的,这是一种所有符号的编码 UTF-8 UTF-8 就 ...

  2. Ethical Hacking - NETWORK PENETRATION TESTING(11)

    Securing your Network From the Above Attacks. Now that we know how to test the security of all known ...

  3. 回文树(回文自动机)(PAM)

    第一个能看懂的论文:国家集训队2017论文集 这是我第一个自己理解的自动机(AC自动机不懂KMP硬背,SAM看不懂一堆引理定理硬背) 参考文献:2017国家集训队论文集 回文树及其应用 翁文涛 参考博 ...

  4. .Net Core in Docker极简入门(上篇)

    目录 前言 开始 环境准备 Docker基础概念 Docker基础命令 Docker命令实践 构建Docker镜像 Dockerfile bulid & run 前言 Docker 是一个开源 ...

  5. 附002.Nginx代理相关模块解析

    一 ngx_http_proxy_module模块 1.1 proxy_pass配置 proxy_pass URL; Context: location, if in location, limit_ ...

  6. Windows10系统,截图黑屏,怎么办?

    问题:Windows10系统,截图黑屏,怎么办? 图片描述: 原因:也许有  媒体播放软件和系统(或者正在使用的截图软件)起了冲突. 我就开了个这个软件,就完蛋了. 导致了  系统自带的  这两个截图 ...

  7. C# WebClient几种常用方法的用法

    1.UploadData方法(Content-Type:application/x-www-form-urlencoded) //创建WebClient 对象            WebClient ...

  8. Spring Date JPA实现增删改查

    1.新建一个Cart类 package com.entity; public class Cart { private int id; private int userId; private int ...

  9. 扯扯Java中的锁

    前言 又过去了一个周末,最近陆陆续续的看了<并发编程的艺术>一书,对锁有不少感悟,这次就聊聊Java中的锁事.本文纯粹是漫谈,想到哪说到哪,但准确性肯定会保证,倘若有不正确之处,还请交流指 ...

  10. Django学习路36_函数参数 反向解析 修改404 页面

    在 templates 中创建对应文件名的 html 文件 (.html) 注: 开发者服务器发生变更是因为 python 代码发生变化 如果 html 文件发生变化,服务器不会进行重启 需要自己手动 ...