微服务实战系列(三)-springcloud、springboot及maven之间关系-copy
1 . 问题描述
随着springboot、springcloud的不断迭代升级,开发效率不断提升,越来越多的开发团队加入到spring的大军中,今天用通俗的语言,介绍下什么是springboot,springcloud以及它们之间的关系。
2. 方案
2.1 首先说下maven
关于maven不想多说了,maven主要有两个功能,一是通过gav定位获取jar包,一是编译打包。

gav示例:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.40</version>
</dependency>
2.2 springboot介绍
2.2.1 介绍
其实springboot就是一个maven项目,只不过使用了spring提供的多个starter来加载多个相关依赖包,starter简单说就是maven包的组合。
比如:只需要一个web的starter包就能直接启动web服务了(springboot项目快速搭建)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.0.3.RELEASE</version>
</dependency>
2.2.2 依赖图
如下图,一个starter包集合了N个包。

2.3 springcould介绍
2.3.1 新建springcloud项目
新建springboot项目,选择Eureka server就可以新建eureka注册中心了。

2.3.2 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">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.spc</groupId>
<artifactId>eurekaserver</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>eurekaserver</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.SR1</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2.3.3 依赖图

”spring-cloud-netflix-eureka-server“包中已经包含:”spring-boot-starter-web“,图太了,就不截图了。
2.4 关系总结
通过上面的描述可以总结出:
(1) maven是springboot的基础,springboot项目本身就是maven项目。在maven项目中使用springboot的多个starter加几个约定,就能成为springboot项目了。
如果你觉得文章对你有些帮助,欢迎微信搜索「软件老王」第一时间阅读或交流!
(2)springboot是springcloud的基础,springcloud本身是springboot项目。
(3)关系:maven->springboot->springcloud
maven是springboot的基础,springboot是springcloud的基础,maven不依赖于springboot,springboot不依赖与springcloud。
更多知识请关注公众号:「软件老王」,IT技术与相关干货分享,回复关键字获取对应干货,java,送必看的10本“武功秘籍”;图片,送100多万张可商用高清图片;面试,送刚毕业就能月薪“20k”的java面试题,软考,送官方pdf书籍与通关论文,后续会不断更新,比如“工具”,“视频“等,已经在整理中。
微服务实战系列(三)-springcloud、springboot及maven之间关系-copy的更多相关文章
- go-zero微服务实战系列(三、API定义和表结构设计)
前两篇文章分别介绍了本系列文章的背景以及根据业务职能对商城系统做了服务的拆分,其中每个服务又可分为如下三类: api服务 - BFF层,对外提供HTTP接口 rpc服务 - 内部依赖的微服务,实现单一 ...
- 微服务实战系列--Nginx官网发布(转)
这是Nginx官网写的一个系列,共七篇文章,如下 Introduction to Microservices (this article) Building Microservices: Using ...
- 微服务实战(三):深入微服务架构的进程间通信 - DockOne.io
原文:微服务实战(三):深入微服务架构的进程间通信 - DockOne.io [编者的话]这是采用微服务架构创建自己应用系列第三篇文章.第一篇介绍了微服务架构模式,和单体式模式进行了比较,并且讨论了使 ...
- go-zero微服务实战系列(十一、大结局)
本篇是整个系列的最后一篇了,本来打算在系列的最后一两篇写一下关于k8s部署相关的内容,在构思的过程中觉得自己对k8s知识的掌握还很不足,在自己没有理解掌握的前提下我觉得也很难写出自己满意的文章,大家看 ...
- Chris Richardson微服务实战系列
微服务实战(一):微服务架构的优势与不足 微服务实战(二):使用API Gateway 微服务实战(三):深入微服务架构的进程间通信 微服务实战(四):服务发现的可行方案以及实践案例 微服务实践(五) ...
- ASP.NET Core微服务实战系列
希望给你3-5分钟的碎片化学习,可能是坐地铁.等公交,积少成多,水滴石穿,码字辛苦,如果你吃了蛋觉得味道不错,希望点个赞,谢谢关注. 前言 这里记录的是个人奋斗和成长的地方,该篇只是一个系列目录和构想 ...
- SpringCloud微服务实战——第三章服务治理
Spring Cloud Eureka 服务治理 是微服务架构中最核心最基本的模块.用于实现各个微服务实例的自动化注册与发现. 服务注册: 在服务治理框架中,都会构建一个注册中心,每个服务单元向注册中 ...
- Spring-cloud微服务实战【三】:eureka注册中心(中)
回忆一下,在上一篇文章中,我们创建了两个springboot项目,并且在consumer项目中通过restTemplate进行HTTP通信,成功访问到了producer提供的接口,思考一下这样的实 ...
- 微服务实战系列(六)-网关springcloud zuul
1. 场景描述 今天接着介绍springcloud,今天介绍下springcloud的路由网关-Zuul,外围系统或者用户通过网关访问服务,网关通过注册中心找到对应提供服务的客户端,网关也需要到注册中 ...
- 微服务实战系列(七)-网关springcloud gateway
1. 场景描述 springcloud刚推出的时候用的是netflix全家桶,路由用的zuul,但是据说zull1.0在大数据量访问的时候存在较大性能问题,2.0就没集成到springcloud中了, ...
随机推荐
- 一文彻底弄懂Java的IO操作
Java 的 IO(输入/输出)操作是处理数据流的关键部分,涉及到文件.网络等多种数据源.以下将深入探讨 Java IO 的不同类型.底层实现原理.使用场景以及性能优化策略. 1. Java IO 的 ...
- Mellanox hp 544+FLR QSFP 40G 网卡升级固件及性能测试
烧录命令参考视频: 相关视频: https://www.youtube.com/watch?v=_2-qPV1giEc flint -allow_psid_change -d /dev/mst/mt4 ...
- 如何利用1%的数据优化特定领域LLM预训练? | EMNLP'24
来源:晓飞的算法工程笔记 公众号,转载请注明出处 论文: Target-Aware Language Modeling via Granular Data Sampling 论文地址:https:// ...
- 用 300 行代码手写提炼 Spring 核心原理 [1]
系列文章 用 300 行代码手写提炼 Spring 核心原理 [1] 用 300 行代码手写提炼 Spring 核心原理 [2] 用 300 行代码手写提炼 Spring 核心原理 [3] 手写一个 ...
- vue2-脚手架
Vue 脚手架是 Vue 官方提供的标准化开发工具(开发平台) https://cli.vuejs.org/zh/ 使用脚手架 安装脚手架 npm install -g @vue/cli 使用脚手架创 ...
- Blazor 组件库 BootstrapBlazor 中Button组件介绍
组件介绍 按钮组件,应该是最基础的组件之一了.感觉没什么可介绍的,但是BootstrapBlazor的按钮,还是有很多不错的特性. 首先是最基础的,boostrap5的按钮样式: 代码如下: < ...
- JDK 18 及以上使用标准输出流中文输出乱码问题
著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 链接:https://stazxr.cn/2024/12/05/JDK-18-以上使用标准输出流中文输出乱码问题/ 来源:終わり ...
- SaaS架构中多租户的概念
SaaS架构中多租户的概念 租户可以理解为部署在云端的客户,通常出现在2B的企业中,比如现在学校的一卡通管理,通常是一个公司来做的,学校本地不需要做任何部署,而这个公司又是服务了很多个学校,那么学校对 ...
- .NET Aspire 外部参数 (External parameters)
.NET Aspire 外部参数 (External parameters) https://learn.microsoft.com/en-us/dotnet/aspire/fundamentals/ ...
- 2024年1月Java项目开发指南8:统一数据返回格式
有时候返回一个字符串,有时候返回一串数字代码,有时候返回一个对象-- 不过怎么说,我们返回的内容往往具有三个 1.消息代码 code 2.消息内容 msg 3.数据内容 data 接下来,我们要编写一 ...