springboot dubbo引入包_spring boot 集成 dubbo 企业完整版

一、什么是Spring Boot ?

现阶段的 Spring Boot 可谓是太火了,为什么呢?因为使用方便、配置简洁、上手快速,那么它是什么?从官网上我们可以看到,它是 Spring 开源组织下的一个子项目,主要简化了 Spring 繁重的配置,而且 Spring Boot 内嵌了各种 Servlet 容器,如:Tomcat、Jetty 等

官方网站:http://projects.spring.io/spring-boot/GitHub源码:https://github.com/spring-projects/spring-boot

二、Spring Boot 的优势 ?

1、独立运行:不需要在用 tomcat 等容器运行。2、简化配置:不需要在像 Spring mvc 那样配置很多的xml了;3、自动配置:根据包路径自动配置 bean4、应用监控:Spring Boot 提供监控服务

三、项目创建

1、创建提供者

afdfc84684874a597bd0fd8d3b6439a6.png

5a1dc4ff961603342e3f0ffb65d5b8ca.png

490a107aa0103d1cee08c15a065d4323.png

73bdf21c195518711700b3ad64721e6b.png

后面点击 finish,创建完毕,然后删掉多余包,使得项目结构如下图:

f1919e2ea5e324240c9000f4b05a6443.png

右击项目,新建一个提供者对外提供服务的模块 qbs-facade

585e8074aa26cad487224bb67ada5ec5.png

62f9dc78c66fa7e6a39d814221178313.png

9e205d00f1cb20dd121334a3c380dc97.png

然后再按照该模式创建一个 qbs-web 模块(这里就不介绍了)最终的项目结构如下图所示:

8adbdce9c8b640706f4fc9bfa9e962f8.png

cc1db3888c0334588c4eaaa3cdf9a869.png

修改 主 pom 文件

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><packaging>pom</packaging><groupId>com.btd</groupId><artifactId>qbs</artifactId><version>0.0.1-SNAPSHOT</version><name>qbs</name><modules><module>qbs-facade</module><module>qbs-api</module></modules><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.6.RELEASE</version><relativePath/></parent><properties><java.version>1.8</java.version><dubbo.version>2.7.1</dubbo.version></properties><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

3、编写 facade

79d58be235c8dbfb1f985f5af0878d14.png

SayFacade.java

package com.btd.qbs.facade;public interface SayFacade {String say(String context);
}

facade 模块的 xml 文件,它只是对外提供一下接口的,所以不需要其它东西

<?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><groupId>com.btd</groupId><artifactId>qbs-facade</artifactId><version>0.0.1-SNAPSHOT</version><name>qbs-facade</name><packaging>jar</packaging></project>

4、组织api模块,实际接口的实现

c035201294762eaebcbbdb674a9066b3.png

先看 pom.xml 文件

<?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"><parent><artifactId>qbs</artifactId><groupId>com.btd</groupId><version>0.0.1-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>qbs-api</artifactId><packaging>jar</packaging><dependencies><!-- spring boot 相关 start  --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- spring boot 相关 end  --><!--dubbo 相关--><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>${dubbo.version}</version></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo</artifactId><version>${dubbo.version}</version></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-dependencies-zookeeper</artifactId><version>${dubbo.version}</version><type>pom</type></dependency><!-- dubbo 相关依赖 end--><dependency><groupId>com.btd</groupId><artifactId>qbs-facade</artifactId><version>0.0.1-SNAPSHOT</version><scope>compile</scope></dependency></dependencies></project>

application.properties 文件

spring.application.name=qbs-providerserver.port=11222dubbo.application.id=${spring.application.name}
dubbo.application.name=${spring.application.name}
dubbo.protocol.port = 28820
dubbo.protocol.name=${spring.application.name}# zk注册中心地址
dubbo.registry.address=zookeeper://127.0.0.1:2181# 提供者配置
dubbo.provider.name=dubbo
dubbo.provider.protocol=dubbo
dubbo.provider.version=1.0.0
dubbo.provider.timeout=30000

SayFacadeImpl.java

package com.btd.qbs.service;import com.btd.qbs.facade.SayFacade;
import org.apache.dubbo.config.annotation.Service;@Service
public class SyaFacadeImpl implements SayFacade {@Overridepublic String say(String context) {return "小肥羊对你说:"+context;}
}

启动文件 Application.java

package com.btd.qbs;import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;@EnableDubbo
@SpringBootApplication(exclude = MongoAutoConfiguration.class)
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class);}
}

OK ,到这里来说,我们的提供者就完成了,启动项目,然后我们看看 dubbo-admin

3b2bed84f70f17c5f3cfdfdf147275ef.png

这里要注意,因为我们的 facade 是对外需要映入的,所以我们打个 jar 包

890612b9db3193e8461627a5519880c8.png

打完包后,我们会得到一个 jar 文件

a061432860dafc01a7bd1e5990046a59.png

2、建立消费者

63b197d701ae0f9c40e268482734b85e.png

引入我们打的 jar 包

627676b9461ed9995e7d558c419c1f89.png

配置文件:

spring.application.name=qbs-consumerserver.port=11121
dubbo.application.id=${spring.application.name}
dubbo.application.name=${spring.application.name}
dubbo.protocol.port=28820
dubbo.protocol.name=dubbo# zk注册中心地址
dubbo.registry.address=zookeeper://172.25.37.130:2181# 消费者配置
dubbo.consumer.version=1.0.0
dubbo.consumer.check=false
dubbo.consumer.timeout=8000

pom.xml 文件

<?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 https://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.1.6.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.btd.abs</groupId><artifactId>qbs-consumer</artifactId><version>0.0.1-SNAPSHOT</version><name>qbs-consumer</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version><dubbo.version>2.7.1</dubbo.version></properties><dependencies><!-- spring boot 相关 start  --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- spring boot 相关 end  --><!--dubbo 相关--><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-spring-boot-starter</artifactId><version>${dubbo.version}</version></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo</artifactId><version>${dubbo.version}</version></dependency><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-dependencies-zookeeper</artifactId><version>${dubbo.version}</version><type>pom</type></dependency><!-- dubbo 相关依赖 end--><!-- 基础依赖 start --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.59</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><scope>provided</scope></dependency><!-- 基础依赖 end --></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>

Application.java 文件

package com.btd.abs;import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;@EnableDubbo
@SpringBootApplication(exclude = MongoAutoConfiguration.class)
public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

DbsController.java 文件

package com.btd.abs.controller;import com.btd.qbs.facade.SayFacade;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/qbs")
public class DbsController {@Referenceprivate SayFacade sayFacade;@GetMapping("/say")@ResponseBodypublic String say(String context) {return sayFacade.say(context);}
}

最后调用结果:http://localhost:11121/qbs/say?context=asde3

482a5315fdc41b66cbc40bcba9cbc93a.png

c1480b930d4aa111b25e38cd8ee86509.png

好了,这是spring boot 集成 dubbo的一整套商业使用的代码事例,按着从上到下的操作,是完全OK的;

有意向的可以关注下我公众号哦!!! 刚开的

6c935145418b57a5886655d2dc3aa953.png
本文纯属原创,转载请申明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/522436.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MaxCompute助力ofo实现精细化运营:日订单超3200万、整体运行效率提升76%

摘要&#xff1a;ofo小黄车大数据BI系统负责人龙利民为大家分享了ofo的上云体验&#xff0c;重点分享了MaxCompute的应用实践&#xff0c;最后对阿里云提出了自己的建议需求。 关于ofo小黄车 共享经济不仅与技术相关&#xff0c;它还关乎人类共同命运&#xff0c;关乎可持续发展…

微服务精华问答 | 为什么需要微服务?

戳蓝字“CSDN云计算”关注我们哦&#xff01;过去几年来&#xff0c;“微服务架构”这个术语出现了&#xff0c;它描述了一种将软件应用程序设计为可独立部署的服务套件的特定方式。尽管这种架构风格没有确切的定义&#xff0c;但围绕业务能力&#xff0c;自动化部署&#xff0…

3个点让你彻底明白,为什么要使用MQ消息中间件?

3个点让你彻底明白&#xff0c;为什么要使用MQ消息中间件? 前言 一个用消息队列的人&#xff0c;不知道为啥用&#xff0c;有点尴尬。没有复习这点&#xff0c;很容易被问蒙&#xff0c;然后就开始胡扯了。 回答&#xff1a;这个问题,咱只答三个最主要的应用场景&#xff0c;不…

五位专家跟你讲讲为啥Python更适合做AI/机器学习

摘要&#xff1a; 为什么Python会在这股深度学习浪潮中成为编程语言的头牌&#xff1f;听听大牛如何解释吧&#xff01; 原文地址&#xff1a;http://click.aliyun.com/m/43988/1.Python网络编程框架Twisted的创始人Glyph Lefkowitz&#xff08;glyph&#xff09;&#xff1a;编…

c++如何显示图片_Vue+laravel后端添加商品后图片如何显示?

知识点&#xff1a;利用laravel的php artisan storage:link实现软连接php artisan storage:link命令执行完毕后&#xff0c;就会在项目里多出一个 public/storage&#xff0c;这个 storage 就是一个软链接&#xff0c;它指向 storage/app/public 目录。这样的话我们就可以直接访…

微软发布 Azure 物联网安全中心;阿里巴巴在美申请专利,以实现跨区块链统一管理;Google利用足球训练下一代人工智能……...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 合众汽车新能源哪吒N01 2020…

手把手教您解决90%的自然语言处理问题

摘要&#xff1a; 本文将讲解如何从零开始&#xff0c;有效地处理自然语言问题的指南和技巧&#xff1a;首先解释如何构建机器学习解决方案来解决上面提到的问题。然后转向更细致的解决方案。如何将5W和H应用于文本数据&#xff01;文本数据无处不在从文本数据中提取有意义和值…

Spring Boot整合swagger2(生成有左右菜单式的api文档界面)

一、pom.xml内容&#xff1a; <!--依赖swagger2 zhongzk 2019.7.7 --> <dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version> </dependency> <depend…

你会感觉容器使用起来很痛苦吗?

摘要&#xff1a; 容器问世4年了&#xff0c;它终于逐渐褪去神秘光环。不过&#xff0c;真正运用自如并不是件容易的事情。 在将容器用于生产环境中的过程中&#xff0c;你是否有很多痛苦&#xff0c;是否踩过很多坑&#xff0c;要吐好多苦水&#xff1f; 其实很大的一个问题在…

如何证明你不是在开发垃圾?

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 珍妮兔 来源| 轻松做软件需要懂垃圾分类的不仅仅只有家庭主妇和煮夫&#xff0c;还有程序员。如果你开发的功能跑不通&#xff0c;你是在开发干垃圾&#xff1b;如果你的代码害得别人的功能跑不通&#xff0c;你是在开发湿垃…

你的专属云资源管家!阿里云正式对外发布云解析PrivateZone!

摘要&#xff1a; 近日&#xff0c;阿里云宣布云解析PrivateZone正式对外公测&#xff0c;该产品是基于阿里云专有网络VPC&#xff08;Virtual Private Cloud&#xff09;环境的私有域名解析和管理服务&#xff0c;使用户在自定义的一个或多个专有网络VPC中快速构建DNS系统&…

当你和天猫精灵对话时,它在想什么?阿里智能对话技术深度解读

摘要&#xff1a; 术语对齐 TaskBot引擎&#xff1a; 核心处理对象是“技能”&#xff0c;我们把技能定义成结构化(querycontent)、垂直场景化的任务&#xff0c;比如实时场景查询、工具类、控制类等QABot引擎&#xff1a;包括KG-QA引擎、QAPair引擎、DeepQA引擎。术语对齐Task…

训练softmax分类器实例_知识蒸馏:如何用一个神经网络训练另一个神经网络

公众号关注 “ML_NLP”设为 “星标”&#xff0c;重磅干货&#xff0c;第一时间送达&#xff01;转载自&#xff1a;AI公园作者&#xff1a;Tivadar Danka编译&#xff1a;ronghuaiyang导读知识蒸馏的简单介绍&#xff0c;让大家了解知识蒸馏背后的直觉。如果你曾经用神经网络来…

10个业界最流行的Kubernetes发行版

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | Serdar来源 | RancherLabs如果你需要大规模的容器编排&#xff0c;想必Kubernetes毋庸置疑是你的首要选择&#xff0c;这一由谷歌推出的开源容器编排系统近年来发展飞速&#xff0c;大受业界及广大用户好评。尽管如此&#x…

神经进化是深度学习的未来

摘要&#xff1a; 本文主要讲了神经进化是深度学习的未来&#xff0c;以及如何用进化计算方法&#xff08;EC&#xff09;优化深度学习&#xff08;DL&#xff09;。过去几年时间里&#xff0c;我们有一个完整的团队致力于人工智能研究和实验。该团队专注于开发新的进化计算方法…

深度学习的关键术语

摘要&#xff1a; 本文着重介绍了深度学习的一些关键术语&#xff0c;其中包括生物神经元&#xff0c;多层感知器&#xff08;MLP&#xff09;&#xff0c;前馈神经网络和递归神经网络。对于初学者来说&#xff0c;掌握它们可以防止在学习请教时的尴尬~深度学习已经成为编程界的…

虚拟化精华问答 | 虚拟化技术分类

虚拟化是一种资源管理技术, 是将计算机的各种物理资源, 如服务器、网络、内存及存储等&#xff0c;予以抽象、转换后呈现出来&#xff0c;打破物理设备结构间的不可切割的障碍&#xff0c;使用户可以比原本的架构更好的方式来应用这些资源。这些资源的虚拟部分是不受现有资源的…

远程服务器 上传公钥,SecureCRT+Ubuntu SSH服务器的远程公钥登陆

有耐心地往下看&#xff0c;哥是实现了的&#xff0c;并且所有细节会给的相当的丰富哈。Ubuntu: Ubuntu 14.04 LTSopensshWindow10(64位):SecureCRT8.0看网上的列为同牛们说gitssh用&#xff0c;自己搭建git服务器&#xff0c;so嗨&#xff0c;所以行动起来&#xff0c;先给win…

理解卷积神经网络的利器:9篇重要的深度学习论文(上)

摘要&#xff1a; 为了更好地帮助你理解卷积神经网络&#xff0c;在这里&#xff0c;我总结了计算机视觉和卷积神经网络领域内许多新的重要进步及有关论文。手把手教你理解卷积神经网络(一)手把手教你理解卷积神经网络(二)本文将介绍过去五年内发表的一些重要论文&#xff0c;并…

理解卷积神经网络的利器:9篇重要的深度学习论文(下)

摘要&#xff1a; 为了更好地帮助你理解卷积神经网络&#xff0c;在这里&#xff0c;我总结了计算机视觉和卷积神经网络领域内许多新的重要进步及有关论文。手把手教你理解卷积神经网络(一)手把手教你理解卷积神经网络(二)继“理解卷积神经网络的利器&#xff1a;9篇重要的深度…