项目provicderandconsumer 结构如下:

pom.xml (我的springboot 版本是2.0.4.RELEASE)

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.4.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>provicderandconsumer</artifactId><version>0.0.1-SNAPSHOT</version><name>provicderandconsumer</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>com.alibaba.spring.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>2.0.0</version></dependency><dependency><groupId>com.github.sgroschupf</groupId><artifactId>zkclient</artifactId><version>0.1</version></dependency><dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.4.14</version><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></exclusion><exclusion><groupId>log4j</groupId><artifactId>log4j</artifactId></exclusion></exclusions></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.16</version><scope>compile</scope></dependency><!--web--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

公共服务接口 UserService

package com.example.springbootapi.dubbo.service;/*** @author*/
public interface UserService {public String print(String s);
}

UserServiceImpl

package com.example.provicderandconsumer.service;import com.example.springbootapi.dubbo.service.UserService;//提供者提供的接口服务 service 采用xml配置
//@Service(interfaceClass = UserService.class)
//@Component
public class UserServiceImpl implements UserService {@Overridepublic String print(String s) {return "say2:" + s;}
}

UserController

package com.example.provicderandconsumer.controller;import com.example.springbootapi.dubbo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;/*** @author*/
@Controller
public class UserController {//reference 在xml配置,这里需要用注解Autowired@Autowiredpublic UserService userService;@RequestMapping("/test")@ResponseBodypublic String test(){String s = userService.print("123sssssssss");return s;}
}

dubbo.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://code.alibabatech.com/schema/dubbohttp://code.alibabatech.com/schema/dubbo/dubbo.xsd"><dubbo:registry address="zookeeper://127.0.0.1:2181" timeout="60000"/><!-- port值-1 表示让dubbo自行找一个可用的port --><dubbo:protocol port="-1" name="dubbo"/><!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 --><dubbo:application name="dubbo"/><!--消费者--><!--关闭服务消费方所有服务的启动检查。dubbo缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止Spring初始化完成。url="dubbo//172.16.1.112:20880"--><dubbo:consumer check="false" /><!--reference 采用xml配置实现,在代码中获取远程服务需要加注解@Autowired--><dubbo:reference id="userService" check="false"  interface="com.example.springbootapi.dubbo.service.UserService"/><dubbo:annotation package="com.example.provicderandconsumer.*"/><!--提供者--><dubbo:service protocol="dubbo" ref="userService" interface="com.example.springbootapi.dubbo.service.UserService"/><bean id="userService" class="com.example.provicderandconsumer.service.UserServiceImpl"/></beans>

启动类 ProvicderandconsumerApplication

package com.example.provicderandconsumer;import com.alibaba.dubbo.spring.boot.annotation.EnableDubboConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ImportResource;@EnableDubboConfiguration
@ImportResource(locations = {"classpath:dubbo.xml"})
@ComponentScan(basePackages = "com.example.provicderandconsumer.*")
@SpringBootApplication
public class ProvicderandconsumerApplication {public static void main(String[] args) {SpringApplication.run(ProvicderandconsumerApplication.class, args);}}

application.properties

server.port=9993

启动springboot程序,如下:

登录 dubbo管理平台 , 这里显示虽然没有消费者(这个暂时不知道原因),实际是有的,下面测试运行正常。

浏览器输入: http://127.0.0.1:9993/test

源码

链接:https://pan.baidu.com/s/1hlGIkmFHpvBs-1uv2eahXQ
提取码:qwfj

注意:需要先启动 zookeeper 和 dubbo-admin(管理平台) ,如果没有安装看下我之前的文章:https://blog.csdn.net/a704397849/article/details/91904085

更多的springboot源码看下我的博客分类dubbo

springboot dubbo 既是提供者又是消费者demo源码相关推荐

  1. springboot maven打包jar运行,springboot mybatis druid,demo源码

    注:本文介绍的mysql版本是5.x ,如果mysql升级到8 有几个地方需要改动 https://blog.csdn.net/a704397849/article/details/108396563 ...

  2. Dubbo第三讲:Dubbo的可扩展机制SPI源码解析

    本文是Dubbo第三讲:Dubbo的可扩展机制SPI源码解析 文章目录 1.Dubbo SPI机制 1.1.Dubbo具有良好拓展性的原因 1.2.Dubbo SPI和Java SPI的区别? 1.3 ...

  3. 一小时学会使用Springboot整合沙箱环境支付宝支付(附源码)

    0.前言 文章需求: 对于学生来说,目前网上确实没有比较统一而且质量好的支付教程.因为支付对个人开发者尤其是学生来说不太友好.因此,自己折腾两天,算是整理了一篇关于支付宝沙箱支付的文章. 那么为什么不 ...

  4. winserver的consul部署实践与.net core客户端使用(附demo源码)

    前言 随着微服务兴起,服务的管理显得极其重要.都知道微服务就是"拆",把臃肿的单块应用,拆分成多个轻量级的服务,每个服务可以在短周期内重构.迭代.交付.随着微服务的数量增多,因量变 ...

  5. Api demo源码学习(8)--App/Activity/QuickContactsDemo --获取系统联系人信息

    本节通过Content Provider机制获取系统中的联系人信息,注意这个Anctivity直接继承的是ListActivity,所以不再需要setContentView函数来加载布局文件了(我自己 ...

  6. vscode插件开发实践与demo源码

    vscode插件开发实践与demo源码 写在前面 工欲善其事必先利其器.vscode作为优秀的开发工具,给我的日常开发工作提供了极大的便利.其拓展机制更是如此. 但是,最近在做年度专业线任务时,有需要 ...

  7. Api demo源码学习(4)--App/Activity/Dialog --Activity以Dialog形式呈现

    这一节实际上比 Api demo源码学习(2)--App/Activity/Custom Dialog 自定义Activity样式  还要简单一些,在源码学习(2)里,也是让Activity以Dial ...

  8. C# Windows系统音量调节Demo源码

    基于.NET Framework 4.0开发,包含滑块设置音量,键盘F1.F2调节音量. 通过滑块调节系统音量核心代码 /// <summary>/// 滑块设置音量/// </su ...

  9. GEF教程及demo源码

    GEF教程及demo源码下载http://download.csdn.net/download/sidihuo/9695103 GEF教程及demo源码

最新文章

  1. xubuntu18.04安装Google拼音输入法
  2. php 定义数字int,php中的int参数
  3. Source Insight 4.0 最简单的破解安装
  4. 一个关于Remoting的简单例子
  5. 打印三角形之细节讲解
  6. python怎么暂停爬虫_python Python爬虫防封杀方法集合
  7. html5背景图片设置大小_web前端学习之HTML5前端开发的特点
  8. Delphi格式化函数Format FormatDateTime和FormatFloat
  9. 将 AR 新创公司收入囊中后,Lyft 的自动驾驶脚步要加快了
  10. 达摩院的地球云计算平台AI Earth使用体验
  11. JUCE框架教程(3)—— Component ClassGraphics入门
  12. 深圳农商行智能柜台项目建设案例
  13. 用人单位不与劳动者签定书面劳动合同的后果
  14. word转freemarker和修改的步骤
  15. GBase xdm价值
  16. C# 使用winRIng0 填写阿里旺旺2015账号密码及自动登录
  17. 6 zabbix警报邮件发送配置
  18. Android 口袋模式
  19. Stack Overflow技术报告给开发者哪些启示
  20. 36氪上的这七家程序员网站你都了解吗?

热门文章

  1. 高斯PDF的性质及其推论
  2. 雨林木风(Ylmf OS)操作系统 点评
  3. docker mysql5.7 设置不区分大小写
  4. java jfreechart 饼图_JFreeChart 使用一 饼图之高级特性
  5. 微软 MSN BEET SDET 面试经过和总结
  6. 大小写字母表(大小写字母表)
  7. 微信号名称乱码什么情况_2020最火微信号,微信号改成什么比较好?
  8. matplotlib数据可视化实验报告1(最终版)
  9. Php集福程序,2021 支付宝“集福”最全攻略,这样操作更快得“福”!
  10. AVR单片机与C语言的一些入门简要概述