SpringBoot2.x整合Dubbo(直连模式)
SpringBoot 是一种快速开发框架,帮助我们快速整合第三方框架(Maven方式继承)、完全采用注解化(使用注解方式启动SpringMvc),简化XML 内置Http服务(tomcat、jetty)最终以java应用启动;
dubbot 是RPC远程调用技术中的一种框架,解决SOA架构服务于服务之间通讯的框架;
dubbo 原理: https://blog.csdn.net/qq_33101675/article/details/78701305
目录结如下:
springboot-inteface 接口模块: JAR
package com.ysl.inteface;public interface IndexService { 定义接口public String index(); 测试方法}
<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>com.ysl</groupId><artifactId>springboot-dubbo</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>springboot-inteface</artifactId>
</project>
springboot-provider 接口实现模块: JAR 生产者
package com.ysl.service.impl;import org.springframework.stereotype.Service;import com.ysl.inteface.IndexService;@Service("indexService") 注意service注解所属包 indexService 装配名字
public class IndexServiceImpl implements IndexService {@Overridepublic String index() {// TODO Auto-generated method stubreturn "SUCCESS...";}}
<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>com.ysl</groupId><artifactId>springboot-dubbo</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>springboot-provider</artifactId><dependencies><dependency><groupId>com.ysl</groupId><artifactId>springboot-inteface</artifactId><version>0.0.1-SNAPSHOT</version></dependency></dependencies>
</project>
application.properties
# Spring boot application
spring.application.name = dubbo-provider-demo
# Spring boot port
server.port = 9090
customer-provider-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/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbohttp://code.alibabatech.com/schema/dubbo/dubbo.xsd"><!-- 提供方应用信息,用于计算依赖关系 --><dubbo:application name="customer-provider" /><!-- dubbo间的直连 --><dubbo:registry address="N/A" /><!-- 用dubbo协议在20880端口暴露服务 --><dubbo:protocol name="dubbo" port="20880" host="127.0.0.1" accesslog="true" /><!-- 声明需要暴露的服务接口 --><dubbo:service interface="com.ysl.inteface.IndexService" ref="indexService" version="1.0.0" /></beans>
springboot-sustomer 视图模块: JAR 消费者
package com.ysl.controller;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import com.ysl.inteface.IndexService;@RestController
public class IndexController {@Autowiredprivate IndexService indexService;@GetMapping("/index")public void index() {System.out.println(indexService.index());}}
<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>com.ysl</groupId><artifactId>springboot-dubbo</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>springboot-sustomer</artifactId><dependencies><dependency><groupId>com.ysl</groupId><artifactId>springboot-inteface</artifactId><version>0.0.1-SNAPSHOT</version></dependency></dependencies>
</project>
application.properties
# Spring boot application crm-customer-consumer
spring.application.name = dubbo-consumer-demo
server.port = 8080
font-consumer-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/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbohttp://code.alibabatech.com/schema/dubbo/dubbo.xsd"><!-- 提供方应用信息,用于计算依赖关系 --><dubbo:application name="front" /><!-- dubbo间的直连 --><dubbo:registry address="N/A" /><!-- 生成远程服务代理 --><dubbo:reference id="indexService"interface="com.ysl.inteface.IndexService" url="dubbo://127.0.0.1:20880"timeout="600000" version="1.0.0" /><!--关闭所有消费者启动时检查 --><dubbo:consumer check="false" />
</beans>
springboot-provider 模块启动类加上 加载dubbo配置
@ImportResource(locations="classpath:customer-provider-dubbo.xml")
springboot-sustomer 模块启动类加上 加载dubbo配置
@ImportResource(locations="classpath:font-consumer-dubbo.xml")
父工程pom:
<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><groupId>com.ysl</groupId><artifactId>springboot-dubbo</artifactId><version>0.0.1-SNAPSHOT</version><packaging>pom</packaging><name>springboot-dubbo</name><modules><module>springboot-inteface</module><module>springboot-sustomer</module><module>springboot-provider</module></modules><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.1.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><scope>provided</scope></dependency><!-- Spring Boot Dubbo 依赖 --><dependency><groupId>com.alibaba.boot</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>0.2.0</version></dependency></dependencies><!-- 解决依赖问题 --><repositories><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/libs-milestone</url><snapshots><enabled>false</enabled></snapshots></repository></repositories><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><!-- java编译插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin></plugins></build></project>
收工~~~
springboot-dubbo 代码地址:
https://github.com/SK-II/springboot-dubbo
SpringBoot2.x整合Dubbo(直连模式)相关推荐
- SpringBoot2.0 整合 Dubbo框架 ,实现RPC服务远程调用
一.Dubbo框架简介 1.框架依赖 图例说明: 1)图中小方块 Protocol, Cluster, Proxy, Service, Container, Registry, Monitor 代表层 ...
- 视频教程-SpringBoot2.X版本优惠券实战整合Dubbo+Rocketmq+Redis-其他
SpringBoot2.X版本优惠券实战整合Dubbo+Rocketmq+Redis 7年的开发架构经验,曾就职于国内一线互联网公司,开发工程师,现在是某创业公司技术负责人, 擅长语言有node/ja ...
- Sentinel整合Dubbo限流实战
Sentinel整合Dubbo限流实战 创建provider项目 添加jar依赖 <dependency><artifactId>sentinel-api</artifa ...
- Springboot整合Dubbo简单示例
Springboot 整合dubbo: 1 简介 Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的 ...
- Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例
摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! "看看星空,会觉得自己很渺小,可能我们在宇宙中从来就是一个偶然.所以,无论什么事情,仔 ...
- SpringBoot2.x 整合websocket 消息推送,单独发送信息,群发信息
根据公司需求在SpringBoot项目中集成站内信,于是,我做了一个SpringBoot2.x 整合websocket 消息推送,给指定用户发送信息和群发信息即点点对方式和广播方式2种模式. 文章目录 ...
- SpringBoot2.0 整合 Redis集群 ,实现消息队列场景
本文源码 GitHub地址:知了一笑 https://github.com/cicadasmile/middle-ware-parent 一.Redis集群简介 1.RedisCluster概念 Re ...
- Springboot 整合 Dubbo/ZooKeeper你不知道的那点事,大神必修课
"看看星空,会觉得自己很渺小,可能我们在宇宙中从来就是一个偶然.所以,无论什么事情,仔细想一想,都没有什么大不了的.这能帮助自己在遇到挫折时稳定心态,想得更开." – <腾讯 ...
- Spring-Boot 整合Dubbo 解决@Reference 注解为null情况
首先检查一下你的spring boot版本是多少? 如果是2.X 不用看了,spring boot 2.x 必定会出现这个问题, 改为 1.5.9 或其他1.x版本,目前生产环境建议使用1.x版本. ...
最新文章
- jQuery的概念、用法、常见面试题详解
- 51nod1836-战忽局的手段【期望dp,矩阵乘法】
- React开发(149):二位数组的使用
- C# 将程序添加开机启动的三种方式
- 【CTF WEB】反序列化
- _mount_vendor
- 强大的图片浏览器---------增强、降低透明度、切换下一张
- python猜名词甲乙丙_用python实现了一下:甲乙两人互猜数字(数理逻辑)
- 离线环境安装dotnet framework nuget包
- CSS 块状元素和内联元素
- 图解think php,图解ThinkPHP5框架(三):配置类Config.php源码解读
- Matlab学习:读取excel中数据
- CBoard框架使用总结五--扩展菜单配置功能
- JavaScript循环刷新页面
- UI设计可供性解析:巧用隐藏的设计力提升用户体验
- SSlSocket和SSLServerSocket的学习 jks,bks的使用
- html怎么设置左侧内边距,CSS 内边距(Padding)
- 已解决IndexError: list index out of range
- exiftool消除元数据
- 关于HyperLPR车牌检测使用笔迹
热门文章
- 3种方法封锁BT下载 1
- 注册资金含有外资的公司可以申请IDC许可证吗
- iphone怎么添加计算机,如何在iPhone上设置铃声? iPhone如何使用iTunes添加铃声?...
- CentOS yum安装软件时保留安装包及依赖包或者自动下载安装包及相关依赖包
- win8计算机丢失xinput1+3.dll,win8提示xinput1 3.dll丢失的解决方法
- TED(指technology, entertainment, design在英语中的缩写,即技术、娱乐、设计)
- Linux下Anaconda的安装及使用教程
- 如何正确运用计算机,新手用机:教你如何正确使用电脑
- 使用达思SQL数据库修复软件导出数据库时的接收数据的数据库如何清空表数据?...
- EVEREST Ultimate Edition 5.50 正式版 序列号