教你springboot+dubbo快速启动的方法

 更新时间:2022年04月01日 11:25:58   作者:波波的。  
这篇文章主要介绍了springboot+dubbo快速启动的方法,dubbo的角色广泛的分为三类provider,comsumer,注册中心,本文通过实例代码给大家介绍的非常详细,需要的朋友参考下

前言

现在用dubbo的太多了,我到现在还不熟悉,这太不应该了,这次好好看了一下dubbo,终于把基本的启动框架搭好了。dubbo的角色宽泛的分三类provider,comsumer,注册中心。我这里的注册中心用的是zookeeper,并且是在windows环境下做的。

dubbo和springboot整合的依赖:

<dependency>
   <groupId>com.alibaba.boot</groupId>
   <artifactId>dubbo-spring-boot-starter</artifactId>
   <version>0.2.0</version>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>

实操

1、创建一个大的maven项目,将里面的src目录删掉,这只是为了在这个大的maven项目里面添加provider和comsumer两个模块。之后创建两个springboot项目,分别是provider和comsumer,创建好的结构:

在这里插入图片描述

这里的common模块我是把entity和接口类抽出来,不抽出来也是可以的

2、common(这里面没有任何依赖,就是个maven项目)

在这里插入图片描述

entity:

public class User {
    private Long id;
    private String name;
    private Integer age;
    public User() {
    }
    public User(Long id, String name, Integer age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

UserService:

public interface UserService {
    User query(Long id);
}

OrderService:

public interface OrderService {
    String getName(Long id);
}

3、provider(添加dubbo依赖并把刚才写的公共模块依赖进来)

<dependency>
    <groupId>org.example</groupId>
    <artifactId>common</artifactId>
    <version>1.0-SNAPSHOT</version>
</dependency>

在这里插入图片描述

OrderServiceImpl:

import com.alibaba.dubbo.config.annotation.Service;
//这里的service注解用的是dubbo
@Service
public class OrderServiceImpl implements OrderService {
    @Autowired
    private UserService userService;
    @Override
    public String getName(Long id) {
        User query = userService.query(id);
        return query.getName();
    }
}

UserServiceImpl:

import com.alibaba.dubbo.config.annotation.Service;
@Service
public class UserServiceImpl implements UserService {
    @Override
    public User query(Long id) {
        User user = new User(1L, "张三", 12);        
        return user;
    }
}

启动类上添加@EnableDubbo

application.properties:

#服务名称
dubbo.application.name=provice
#注册中心
dubbo.registry.address=127.0.0.1:2181
dubbo.registry.protocol=zookeeper
#通信协议
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880

4、comsumer(添加dubbo依赖,common模块,web依赖)

在这里插入图片描述

OrderController:

import com.alibaba.dubbo.config.annotation.Reference;
@RestController
public class OrderController {
//添加dubbo的reference注解,进行远程调用
    @Reference
    OrderService orderService;

    @RequestMapping("getName")
    String getName(Long id){
        String name = orderService.getName(id);
        return name;
    }
}

启动类上加上@EnableDubbo

application.properties:

#服务名称
dubbo.application.name=comsumer
#注册中心
dubbo.registry.protocol=zookeeper
dubbo.registry.address=127.0.0.1:2181

测试

启动zookeeper,provider和comsumer.

在这里插入图片描述

注:

1、首先要启动zookeeper,下载windows版压缩包,修改conf配置文件,启动zkServer.cmd命令。具体怎么弄这里就不写了,网上很多,我这里主要练习的是dubbo.
2、启动类上需要添加@EnableDubbo
3、comsumer中调用服务用@Reference,因为是远程调用,所以 @Autowired肯定是没用的了
4、provider中的实现类需要用dubbo的@Service注解

到此这篇关于springboot+dubbo快速启动的文章就介绍到这了,更多相关springboot dubbo启动内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Eclipse如何导入Maven项目详解(新手初学)

    Eclipse如何导入Maven项目详解(新手初学)

    这篇文章主要介绍了Eclipse如何导入Maven项目详解(新手初学),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • 解析Java的Spring框架的BeanPostProcessor发布处理器

    解析Java的Spring框架的BeanPostProcessor发布处理器

    这篇文章主要介绍了Java的Spring框架的BeanPostProcessor发布处理器,Spring是Java的SSH三大web开发框架之一,需要的朋友可以参考下
    2015-12-12
  • 详解MyBatisPlus逻辑删除与唯一索引冲突问题

    详解MyBatisPlus逻辑删除与唯一索引冲突问题

    这篇文章主要介绍了详解MyBatisPlus逻辑删除与唯一索引冲突问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Java实例讲解多态数组的使用

    Java实例讲解多态数组的使用

    本文章向大家介绍Java多态数组,主要包括Java多态数组使用实例、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下
    2022-05-05
  • 浅谈Java内存区域划分和内存分配策略

    浅谈Java内存区域划分和内存分配策略

    这篇文章主要介绍了浅谈Java内存区域划分和内存分配策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • Java实现常用缓存淘汰算法:FIFO、LRU、LFU

    Java实现常用缓存淘汰算法:FIFO、LRU、LFU

    在高并发、高性能的质量要求不断提高时,我们首先会想到的就是利用缓存予以应对。而常用的几个缓存淘汰算法有:FIFO、LRU和LFU,本文将为大家详细介绍一下这三个算法并用java实现,感兴趣的可以跟随小编一起学习一下
    2021-12-12
  • java读取resource目录下文件的方法示例

    java读取resource目录下文件的方法示例

    这篇文章主要介绍了利用java读取resource目录下文件的方法,文中给出了详细的示例代码,相信对大家具有一定的参考借鉴,需要的朋友们下面来一起看看吧。
    2017-02-02
  • 新版POI获取日期类型cell值过程图解

    新版POI获取日期类型cell值过程图解

    这篇文章主要介绍了新版POI获取日期类型cell值过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • 基于Class.forName()用法及说明

    基于Class.forName()用法及说明

    这篇文章主要介绍了基于Class.forName()用法及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • 详解Java利用ExecutorService实现同步执行大量线程

    详解Java利用ExecutorService实现同步执行大量线程

    这篇文章主要介绍了Java利用ExecutorService实现同步执行大量线程,ExecutorService可以维护我们的大量线程在操作临界资源时的稳定性。
    2017-03-03

最新评论