一.创建项目

  1.创建一个空的项目

  2.在空的项目中添加两个Spring Boot模块,如下图所示

    

二.在provider模块中的pom文件中添加依赖

        <dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>dubbo-spring-boot-starter</artifactId>
<version>0.2.0</version>
</dependency>
<!--引入zookeeper的客户端工具-->
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>

  注意,本人的Spring Boot是2.0以上版本的,导入的dubbo依赖是0.2.0。如果版本不对应,可能会启动失败

三.在配置文件中配置dubbo

  例如本人的配置如下(provider中的application.properties文件)

dubbo.application.name=provider
dubbo.registry.address=zookeeper://192.168.2.130:2181
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
dubbo.scan.basePackages=com.whzc.service.impl

  如果是consumer模块,则

dubbo.application.name=consumer
dubbo.registry.address=zookeeper://192.168.2.130:2181
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880

四.在provider模块中实现发布服务

  接口

package com.whzc.service;

public interface ArticleProviderService {
public String writeArticle(String name);
}

  实现类(注意注解不要引错了)

package com.whzc.service.impl;

import com.alibaba.dubbo.config.annotation.Service;
import com.whzc.service.ArticleProviderService;
import org.springframework.stereotype.Component; @Service
@Component
public class ArticleProviderServiceImpl implements ArticleProviderService {
@Override
public String writeArticle(String name) {
return "写了一篇文章"+ name;
}
}

  启动项目,启动成功后如下图所示 (有可能连接时间过长,或zookeeper未开启等各方面原因导致启动失败,可以多尝试几次)

  

  在linux中查看服务,在zookeeper的安装目录中,有一个bin目录,bin目录中有一个zkCli.sh,启动zkCli.sh,

./zkCli.sh

  如下图所示

  

  输入

ls /

  再输入

ls /dubbo

  可以查看已经发布的服务,例如本人的如下所示

  

  附:如果装有dubbo-admin,可以直接在dubbo-admin中查看,例如下图所示(网上直接找dubbo-admin的war包,放到tomcat中即可)

  

五.在consumer中获取到服务

  1.复制provider中的接口到consumer对应的包中(和provider中的接口的包名相同,都是com.whzc.service包中),这里不需要实现类了。

  2.创建一个消费者服务,例如(注意Service注解和Reference注解对应的包不要引错了)

package com.whzc.service;
import com.alibaba.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Service; @Service
public class ArticleConsumerService {
@Reference
ArticleProviderService articleProviderService; public void readArticle(){
String str = articleProviderService.writeArticle("文章111");
System.out.println("读了别人"+str);
}
}

  3.在测试类中测试

    @Autowired
ArticleConsumerService articleConsumerService; @Test
public void contextLoads() {
articleConsumerService.readArticle();
}

  4.发现成功获取到了provider发布的服务,如下图所示

  

  如果直接启动该consumer项目,则可以在dubbo-admin中看到如下图所示

  

Spring Boot整合dubbo(注解的方式)的更多相关文章

  1. Elasticsearch学习(3) spring boot整合Elasticsearch的原生方式

    前面我们已经介绍了spring boot整合Elasticsearch的jpa方式,这种方式虽然简便,但是依旧无法解决我们较为复杂的业务,所以原生的实现方式学习能够解决这些问题,而原生的学习方式也是E ...

  2. Spring Boot 整合 Dubbo和Zookeeper

    Spring Boot 整合 Dubbo和Zookeeper Spring Boot 整合 Dubbo和Zookeeper 环境介绍 Zookeeper 安装 启动 Dubbo admin 搭建 创建 ...

  3. Spring Boot整合Mybatis(注解方式和XML方式)

    其实对我个人而言还是不够熟悉JPA.hibernate,所以觉得这两种框架使用起来好麻烦啊. 一直用的Mybatis作为持久层框架, JPA(Hibernate)主张所有的SQL都用Java代码生成, ...

  4. Spring Boot整合Dubbo使用及开发笔记

    一.概述: Spring Dubbo是我开发的一个基于spring-boot和dubbo,目的是使用Spring boot的风格来使用dubbo.(即可以了解Spring boot的启动过程又可以学习 ...

  5. spring boot 2.x 系列 —— spring boot 整合 dubbo

    文章目录 一. 项目结构说明 二.关键依赖 三.公共模块(boot-dubbo-common) 四. 服务提供者(boot-dubbo-provider) 4.1 提供方配置 4.2 使用注解@Ser ...

  6. spring boot 整合dubbo

    dubbo与springboot的集成和使用dubbo-spring-boot-starter SpringBoot整合Dubbo2.5.10(官方的spring-boot-starter0.1.0) ...

  7. Spring Boot整合Dubbo框架demo

    Dubbo框架原理见之前的博文:http://www.cnblogs.com/umgsai/p/5836925.html 首先启动zookeeper Server端 Pom配置如下 <?xml ...

  8. Spring boot配置Dubbo三种方式

    方式一 使用注解的方式 导入dubbo-starter 在application.properties配置属性 使用@Service暴露服务 使用@Reference引用服务 使用@EnableDub ...

  9. dubbo学习(十)spring boot整合dubbo

    工程搭建与配置 生产者 1.创建一个生产者的spring boot工程,配置好依赖,并把接口实现类文件夹复制到新的工程里 2.pom.xml配置dubbo的相关依赖 <!-- Dubbo Spr ...

随机推荐

  1. Java Web使用过滤器防止Xss攻击,解决Xss漏洞

    转: Java Web使用过滤器防止Xss攻击,解决Xss漏洞 2018年11月11日 10:41:27 我欲乘风,直上九天 阅读数:2687   版权声明:本文为博主原创文章,转载请注明出处!有时候 ...

  2. MonkeyRunner基本操作

    1. #导入模块; from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage 2. #连接当前设备,并返 ...

  3. Web jsp开发自学——ajax+servlet+echarts+json+gson 实现ajax传输servlert和echarts的数据,可视化结果

    感谢下面的博主,我学习的博客有: https://blog.csdn.net/ITBigGod/article/details/81023802  Jsp+Servlet+Echarts实现动态数据可 ...

  4. elk、kafka、zookeeper 安装

    .elk解释 ELK分别是Elasticsearch.Logstash.Kibana三个开源框架缩写 Elasticsearch 开源分布式搜索引擎,提供存储.分析.搜索功能.特点:分布式.基于rea ...

  5. Nginx代理与反向代理、负载均衡实

    通过 Nginx 提供的反向代理和负载均衡功能,可以合理的完成业务的分配,提高网站的处理能力:同时利用缓存功能,还可以将不需要实时更新的动态页面输出结果,转化为静态网页形成缓存,从而提高网站的响应速度 ...

  6. Java利用PushbackReader实现返回对文本中的指定字符串之前的内容

    import java.io.FileReader; import java.io.PushbackReader; public class PushbackTest { public static ...

  7. BeanFactory 和FactoryBean的区别

    转自:https://www.cnblogs.com/aspirant/p/9082858.html BeanFacotry是spring中比较原始的Factory.如XMLBeanFactory就是 ...

  8. Python报错module 'scipy.misc' has no attribute 'xxx'

    Python报错module 'scipy.misc' has no attribute 'imresize' 解决办法: 安装Pillow包,命令如下: pip install Pillow 然后重 ...

  9. Opencv-python3.3版本安装

    因为目前为止(2019.11.17)opencv最新版本为4.1,因此直接pip install opencv-python的话,无法安装想要的版本(老师推荐3.X) 上清华镜像查找opencv-py ...

  10. 【VS开发】浅谈C/C++中的static和extern关键字

    一.C语言中的static关键字 在C语言中,static可以用来修饰局部变量,全局变量以及函数.在不同的情况下static的作用不尽相同. (1)修饰局部变量 一般情况下,对于局部变量是存放在栈区的 ...