Spring Boot整合dubbo(注解的方式)
一.创建项目
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(注解的方式)的更多相关文章
- Elasticsearch学习(3) spring boot整合Elasticsearch的原生方式
前面我们已经介绍了spring boot整合Elasticsearch的jpa方式,这种方式虽然简便,但是依旧无法解决我们较为复杂的业务,所以原生的实现方式学习能够解决这些问题,而原生的学习方式也是E ...
- Spring Boot 整合 Dubbo和Zookeeper
Spring Boot 整合 Dubbo和Zookeeper Spring Boot 整合 Dubbo和Zookeeper 环境介绍 Zookeeper 安装 启动 Dubbo admin 搭建 创建 ...
- Spring Boot整合Mybatis(注解方式和XML方式)
其实对我个人而言还是不够熟悉JPA.hibernate,所以觉得这两种框架使用起来好麻烦啊. 一直用的Mybatis作为持久层框架, JPA(Hibernate)主张所有的SQL都用Java代码生成, ...
- Spring Boot整合Dubbo使用及开发笔记
一.概述: Spring Dubbo是我开发的一个基于spring-boot和dubbo,目的是使用Spring boot的风格来使用dubbo.(即可以了解Spring boot的启动过程又可以学习 ...
- spring boot 2.x 系列 —— spring boot 整合 dubbo
文章目录 一. 项目结构说明 二.关键依赖 三.公共模块(boot-dubbo-common) 四. 服务提供者(boot-dubbo-provider) 4.1 提供方配置 4.2 使用注解@Ser ...
- spring boot 整合dubbo
dubbo与springboot的集成和使用dubbo-spring-boot-starter SpringBoot整合Dubbo2.5.10(官方的spring-boot-starter0.1.0) ...
- Spring Boot整合Dubbo框架demo
Dubbo框架原理见之前的博文:http://www.cnblogs.com/umgsai/p/5836925.html 首先启动zookeeper Server端 Pom配置如下 <?xml ...
- Spring boot配置Dubbo三种方式
方式一 使用注解的方式 导入dubbo-starter 在application.properties配置属性 使用@Service暴露服务 使用@Reference引用服务 使用@EnableDub ...
- dubbo学习(十)spring boot整合dubbo
工程搭建与配置 生产者 1.创建一个生产者的spring boot工程,配置好依赖,并把接口实现类文件夹复制到新的工程里 2.pom.xml配置dubbo的相关依赖 <!-- Dubbo Spr ...
随机推荐
- Win10怎样显示此电脑
1.在桌面空白处右击鼠标,在出现的选项框中选择“个性化”按钮: 2.在打开的页面中选择左侧的“主题”选项,在右侧选择“桌面图标设置”: 3.在弹出的小窗口中勾选“计算机”,点击“确定”,回到桌面即有此 ...
- PHP中获取当前页面的完整URL、PHP URL处理、获取不带扩展名的文件名
javascript实现: top.location.href 顶级窗口的地址this.location.href 当前窗口的地址 PHP实现 #测试网址: http://localhost/blog ...
- Very important notes about Spring @Transnational(Srping事务注解 @Transnational重要注意事项)
Sprint @Transnational is being ignored in the following cases: 1. when the caller method is calling ...
- Python:Base1(数据类型,print语句,变量,定义字符串,raw字符串与多行字符串,Unicode字符串,整数和浮点数运算,布尔类型运算)
1.Python中数据类型: 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据 ...
- linux下安装jdk8并且配置环境变量
su回车进入root账户 查看是否安装过jdk8使用命令 # rpm -qa | grep -i jdk 创建文件夹用来存放下载的jdk使用命令 # mkdir -p /usr/local/src/j ...
- 4-2 编辑器之神--vim
vim vi:Visual editor文本编辑器 文本:ascii,Unicode vim:VIsual editor iMproved 官网:www.vim.org 帮助网站:Vimhelp.or ...
- Ubuntu重启关机命令
重启命令 : 1.reboot 立刻重启 2.shutdown -r now 立刻重启 3.shutdown -r 10 过10分钟自动重启 4.shutdown -r 20:35 在时间为20:3 ...
- alembic常用命令和经典错误解决办法
- java.sql.SQLException: Access denied for user 'root'@'10.10.7.180' (using password: YES)
1.刚开始连接数据库提示是: java.sql.SQLException: Access denied for user 'root'@'10.10.7.180' (using password: N ...
- mysql 构造连续的日期
需求,我想以 年-月-日的格式,统计自 2019-08-20日 前10天的记录数,如果该天没有任何一条记录,则给予0 原始数据->我想要的结果集数据 ==============> ...