一、什么是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、创建提供者

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

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

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

修改 主 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

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模块,实际接口的实现

先看 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

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

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

2、建立消费者

引入我们打的 jar 包

配置文件:

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

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

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

本文纯属原创,转载请申明

springboot dubbo引入包_spring boot 集成 dubbo 企业完整版相关推荐

  1. springboot dubbo引入包_Spring Cloud与Dubbo的完美融合之手「Spring Cloud Alibaba」

    很早以前,在刚开始搞Spring Cloud基础教程的时候,写过这样一篇文章:<微服务架构的基础框架选择:Spring Cloud还是Dubbo?>,可能不少读者也都看过.之后也就一直有关 ...

  2. Spring boot Mybatis 整合(完整版)

    Spring boot Mybatis 整合(完整版) 更多干货 SpringBoot系列目录 正题 本项目使用的环境: 开发工具:Intellij IDEA 2017.1.3 springboot: ...

  3. Spring Boot整合EasyExcel(完整版包含上传解析excel和下载模板)

    Spring Boot整合EasyExcel(完整版包含上传解析excel和下载模板) 1. 加入依赖 2. 对读取excel内容(批量添加) 3. 模板下载: 1. 加入依赖 <depende ...

  4. springboot 单测加入参数_Spring Boot集成Elasticsearch实战分享

    作者|java梦想口服液|简书 最近有读者问我能不能写下如何使用 Spring Boot 开发 Elasticsearch(以下简称 ES) 相关应用,今天就讲解下如何使用 Spring Boot 结 ...

  5. maven springboot 除去指定的jar包_Spring Boot打包瘦身 Docker 使用全过程 动态配置、日志记录配置...

    springBoot打包的时候代码和jar包打包在同一个jar包里面,会导致jar包非常庞大,在不能连接内网的时候调试代码,每次只改动了java代码就需要把所有的jar包一起上传,导致传输文件浪费了很 ...

  6. idea swagger生成接口文档_spring boot集成Swagger-UI接口文档

    本文介绍如何用spring boot集成Swagger-UI,实现项目在线接口文档 一.Swagger-UI简介 Swagger是一个Restful风格接口的文档在线自动生成和测试的框架 官网对Swa ...

  7. springboot session默认失效时间_Spring Boot 整合 Redis,用起来真简单

    来源:http://rrd.me/epDTz Redis 是目前业界使用最广泛的内存数据存储.相比 Memcached,Redis 支持更丰富的数据结构,例如 hashes, lists, sets ...

  8. spring boot 缓存_Spring Boot 集成 Redis 实现数据缓存

    Spring Boot 集成 Redis 实现数据缓存,只要添加一些注解方法,就可以动态的去操作缓存了,减少代码的操作. 在这个例子中我使用的是 Redis,其实缓存类型还有很多,例如 Ecache. ...

  9. springboot map数据类型注入_Spring Boot(五):春眠不觉晓,Mybatis知多少

    在JavaWeb项目开发中,我们使用最多的ORM框架可能就是Mybatis了,那么对于常用的mybatis,你究竟了解多少呢? 一 全局了解 1 Mybatis是什么 MyBatis 是支持定制化 S ...

最新文章

  1. 使用Jenkins自动远程调用压测机实现不同用户场景下的并发测试
  2. 基于【IPv6】静态路由和默认路由的配置
  3. 整数划分问题(路径输出)【递归求解方式】
  4. Android+NDK+OpenGLES开发环境配置
  5. 如何启用SAP CRM text的html编辑器
  6. 天平称重【递归解法】
  7. Android 组件系列-----Activity初步
  8. C#中BackgroundWorker的介绍
  9. Python: sorted() 函数
  10. 操作系统课程设计 模拟磁盘文件系统实现
  11. SitePoint播客#128:我最不喜欢的10岁
  12. Showwindow及参数介绍
  13. 鸡啄米:C++编程入门系列之六(算法的基本控制结构之选择结构)
  14. JAVA基础之单例模式
  15. react封装倒计时定时器
  16. Visual Studio SVN创建分支 合并分支 切换分支 vs 插件 visualsvn
  17. 记 vue 移动端开发 中的经验
  18. 出队列c语言程序,队列的c语言实现
  19. 上海商业发展研究院刘斌:变革下的供应链发展趋势
  20. 智慧风电场Web组态集控中心远程监控系统

热门文章

  1. 同学,要不要来挑战双11零点流量洪峰?
  2. “大团队”和“敏捷开发”,谁说不可兼得?
  3. 5W1H系列 | Nacos 帮我们解决什么问题?(配置管理篇)
  4. 阿里云商品评价解析功能示例解析
  5. 青年PM倪超:想让程序员多一点点幸福感
  6. 全球权威MLPerf基准测试再发榜,浪潮AI服务器创18项AI性能纪录
  7. 最快60秒完成新冠病毒核酸对比 阿里云向社会免费开放基因计算服务
  8. SDN精华问答 | 了解SDN架构
  9. 使用Kubernetes和Docker将Spring Boot与MongoDB作为容器部署
  10. php 实例化模型出错,实例化model出错了