SpringBoot的设计理念和目标、整体架构你有深入了解吗-深圳网站优化推广公司
公众号矩阵
移动端
开发 后端 架构
本文使用 Itellj IDEA (简称 IDEA) 作为阅读代码工具,采用纯源代码阅读、实例+debug 两种模式配合进行学习。

源代码阅读工具

读者可根据日常习惯,选择熟悉的代码阅读 I 具,比如 Intellij IDEA、Spring Tool Suite、Eclipse、 MyEclipse 等。

阅读 Spring Boot 源代码之前,我们还需搭建基础阅读环境。Spring Boot 对 JDK 和构建工具有一定的要求, 比如 JDK 8+、Maven 3.3+、Gradle 5.x+等环境,满足相应需求即可。

为了达到更好的学习效果,建议大家使用实例+debug 的模式来进行学习。因此,源代码阅读 I 具最好支持实例的编写、运行、调试等功能。

本文使用 Itellj IDEA (简称 IDEA) 作为阅读代码工具,采用纯源代码阅读、实例+debug 两种模式配合进行学习。

其中纯源代码阅读模式可以帮助我们更好地进行代码的注释、编写、单元测试等操作,而实例+debug 模式可以让我们更好地理解整个项目的运行流程及功能的具体使用。图 1-2 和图1-3 展示 了通过 IDEA 阅读代码的两种模式。

 

 

 

 

Spring Boot 的设计理念和目标

我们知道,Spring 所拥有的强大功能之一就是可以集成各种开源软件。 但随着互联网的高速发展,各种框架层出不穷,这就对系统架构的灵活性、扩展性、可伸缩性、高可用性都提出了新的要求。随着项目的发展,Spring 慢慢地集成了更多的开源软件,引入大量配置文件,这会导致程序出错率高、运行效率低下的问题。为了解决这些状况,Spring Boot 应运而生。

Spring Boot 本身并不提供 Spring 的核心功能,而是作为 Spring 的脚手架框架,以达到快速构建项目、预置三方配置、开箱即用的目的。

[[345193]]

 

设计理念

约定优于配置(Convention Over Configuration),又称为按约定编程,是一种软件设计范式,旨在减少软件开发人员需要做决定的数量,执行起来简单而又不失灵活。Spring Boot 的核心设计完美遵从了此范式。

Spring Boot 的功能从细节到整体都是基于“约定优于配置开发的,从基础框架的搭建、配置文件、中间件的集成、内置容器以及其生态中各种 Starters,无不遵从此设计范式。Starter

作为 Spring Boot 的核心功能之一,基于自动配置代码提供了自动配置模块及依赖,让软件集成变得简单、易用。与此同时,Spring Boot 也在鼓励各方软件组织创建自己的 Starter。

设计目标

说到 Spring Boot 的设计目标,值得一提的是 Spring Boot 的研发团队一 Pivotal 公司。Pivotal公司的企业目 标是致力于改变世界构造软件的方式(Weare transforming how the worldbuilds software)”。 Pivotal 公 司向企业客户提供云原生应用开发 PaaS 平台及服务,采用敏捷软件开发方法论帮助企业客户开发软件,从而提高软件开发人员工作效率、减少软件运维成本,实现企业数字化转型、IT 创新,帮助企业客户最终实现业务创新。

Spring Boot 框架的设计理念完美遵从了它所属企业的目标。Spring Boot 不是为已解决的问题提供新的解决方案,而是为平台和开发者带来一种全新的体验:整合成熟技术框架、屏蔽系统复杂性、简化已有技术的使用,从而降低软件的使用]槛,提升软件开发和运维的效率。

Spring Boot 的整体架构

在 1.2 节中已经对 Spring Boot 的核心项目结构及功能做了相应的介绍,本节我们从架构层面 了 解 一 下 Spring Boot 的 不同模 块之间的依 赖 关 系 如 图 1-4 所示 。

 

 

图 1-4 中为了更清晰地表达 Spring Boot 各项目之间的关系,我们基于依赖的传递性,省略了部分依赖关系。比如,Spring Boot Starters 不仅依赖了 Spring Boot Autoconfigure 项目,还依赖了 Spring Boot 和 Spring,而 SpringBoot Autoconfigure 项目又依赖了 Spring Boot,Spring Boot 又依赖了 Spring 相关项目。因此在图中就省略了 Spring Boot Starters 和底层依赖的关联。

Spring Boot Parent 是 Spring Boot 及图中依赖 Spring Boot 项目的 Parent 项目,同样为了结构清晰,图中不显示相关关联。

从图 1-4 中我们可以清晰地看到 Spring Boot 几乎完全基于 Spring,同时提供了 Spring Boot和 Spring Boot Autoconfigure 两个核心的模块,而其他相关功能又都是基于这两个核心模块展开的。本文相关的源代码分析也是围绕两个核心模块展开。 

责任编辑:庞桂玉 来源: 今日头条
相关推荐

2022-02-28 10:30:03

架构代码Native

2021-08-19 08:59:51

B端C端设计

2015-11-06 09:39:52

2015-11-06 10:52:51

2024-08-21 08:00:00

2010-01-06 17:18:54

Linux常用软件

2023-10-31 09:13:16

CPUIntel前端

2010-11-19 16:22:14

Oracle事务

2010-06-23 20:31:54

2020-09-21 09:53:04

FlexCSS开发

2010-07-13 09:36:25

2009-08-25 16:27:10

Mscomm控件

2022-08-26 13:48:40

EPUBLinux

2023-10-06 00:04:02

2020-07-20 06:35:55

BashLinux

2020-09-21 05:58:40

深度学习算法目标检测

2019-08-02 08:59:21

Token认证服务器

2017-01-20 08:30:19

JavaScriptfor循环

2019-11-29 16:21:22

Spring框架集成

2015-08-25 09:43:50

交互设计五大支柱
前端
27209内容
全部话题

同话题下的热门内容

Python初学者入门指南八大要点一行代码解决跨平台噩梦!C++17 帮你一键搞定Python 循环结构精华五点记一次 .NET 某电商医药网站 CPU 爆高分析WinForms 应用中的 ADO.NET 使用指南掌握 Python 列表推导式的六种方法

相关专题 更多

2024年第十九届中国企业年终评选榜单揭晓
2024年第十九届中国企业年终评选榜单揭晓
如何发挥数据的最大力量?
如何发挥数据的最大力量?
2024-09-11 10:06:01
戴尔与AMD携手发布新一代服务器解决方案
戴尔与AMD携手发布新一代服务器解决方案
2024-12-24 16:34:07
我收藏的内容
点赞
收藏
分享

51CTO技术栈公众号

业务
速览
在线客服
媒体
51CTO CIOAge HC3i
社区
51CTO博客 鸿蒙开发者社区 AI.x社区
教育
51CTO学堂 精培 企业培训 CTO训练营

相关内容推荐

如何制作设计类个人网站牛根生简历制作网站网站广告代码制作窝窝网站制作小玩具商城网站制作表情包镇安制作网站制作网站飘窗需要图片地址制作相亲网站app导航制作网站esp8266制作网站慈溪有什么制作动漫形象网站中山网站制作 优选易维互联网站建设制作外包有用吗怎么制作视频网站vip功能贵州省制作网站深圳网站制作必荐祥奔科技海通证券网站制作桐乡电脑网站用什么制作怎么用eclipse制作网站免费快递底单制作网站北京大学网站首页制作素材威海文登市网站制作木马短信钓鱼网站制作如何制作好看又复杂的网站沁阳网站制作建设情侣背景制作网站日照网站制作哪家好制作包装袋网站淘宝招牌在线制作网站怎么制作钓鱼网站视频学生dw网站制作步骤同胜网站建设制作法院网站制作素材电商网站商品视频制作方式中山联客易网站制作推荐国外标志网站制作郑州网站制作工作室国外hgame网站制作临朐制作网站西藏网站制作服务衢州哪个网站有制作艺术照腾讯微信小程序制作网站宜春视频制作网站石家庄平台网站制作中国篆刻网站印泥制作小米路由器制作网站足球波胆网站制作制作爱奇艺之类的网站青岛网站制作网站新泰公司网站如何制作如何制作网站快捷程序mvc网站制作教程视频龙岗网站制作头像app艺术 制作网站北京专业网站制作服务标准携程网站制作壁纸如何制作克隆网站6网站制作怎么分配利益复制网站制作后台祁东手机网站制作奥美网站制作湖南移动网站建设制作上传透明头像制作网站营销型网站制作运营怎样制作 微网站金三角电影网站制作瑞金市网站制作公司网站制作讲座如何制作整形行业网站网站制作时图片模糊一条龙网站制作奶茶商城网站制作贴纸门户网站制作头像教程如皋珠宝网站制作武隆品牌网站制作需要多少钱广铁集团网站制作干花中英文网站制作联系方式新余网站制作需要多少钱西宁房产网站开发制作公众号模板免费制作网站湛江制作网站收费求购网站制作合肥网站建设制作流程安全网站制作美食昆山网站首页制作建筑设计网站制作表格临海如何制作网站首页链接临安网站制作与推广价格网站制作公司赚得到钱吗昌邑网站制作与推广澳门电影网站制作网站制作公司简格科技阜平专业网站制作电话网站的制作一般要自己制作网站文章福田网站建设网站制作都有哪些芝罘区响应式网站制作中注协网站制作视频昆明网站制作ppt的软件如何网站制作小玩具推荐赫章网站制作公司上口镇网站制作雅安网站制作推广南城家具网站制作好吗南湖小企业网站制作怎么样桐乡电脑网站用什么制作易经起名网站制作easy手工制作网站滨州网站建设制作开发公司网站制作开发渠道变压器厂家网站设计制作望牛墩网站制作费用网站开发网页制作工资高吗高端网站制作收费深圳网站制作最优祥奔科技怎么制作幼儿园网站义乌曹县专业网站制作多少钱山海关区网站制作报价怎么制作有字幕的电影网站奉化废品回收网站制作自学网站制作书签微名片在线制作网站制作数学单元测试卷的网站兴城专题制作网站web制作网站实训报告哈尔滨哪里制作网站网站制作和二维码分享网站制作贴纸网站制作德州高端制作网站服务商制作一个免费手机网站模板情侣网站如何制作好记星网站视频制作北京青年报网站链接制作广元企业网站制作公司丰南响应式网站制作供应网站制作哪家好如何制作个人网站知乎大朗互联网网站制作哪家快怎么制作www网站道具制作网站在线制作片头的外国网站高转化率网站制作ppt制作素材网站推荐美国编曲制作网站dw用户注册网站 制作鄞州网站制作建设榆林网站设计制作咨询徐州企业网站制作哪家服务好南山英文网站制作哪家专业如何制作网站音乐播放器鹤壁网站制作报价晴隆县网站制作矿泉水网站制作奶茶客户网站制作视频软件制作钓鱼网站源码制作动态图的网站镇海区网站制作方式宜昌网站制作干花教程制作英语网站环游世界网站制作珠海网站制作ppt河南网站怎么制作的临颍县网站制作吉水网站制作公司制作照片书的模板网站外国免费网站制作网站如何制作官网网站贺州网站制作公司哪家好网站制作合同付款细则柳州免费制作网站沙头海外网站制作哪家快制作网站打广告图片武威效果好的网站制作制作电脑配件网站长兴制作网站时版面设计是什么制作立体字的网站制作网站局域网赤峰旅游网站制作杜聿明简历制作网站沈阳制作网站步骤github制作网站制作阿里巴巴网站福建电子网站制作技术网上制作网站语言网页动态相册制作网站免费表白网站在线制作6手机表白代码制作网站网站制作哪个专业最好制作网站需要问网站后台怎么搭建制作安丘手机网站制作哪家服务好录歌网站制作奶茶点评网站制作蛋糕音画网站制作奶茶阿里巴巴制作网站需要多少钱网页制作与网站建设教学活动设计免费制作宣传单页的网站网站制作比较好的书环保局网站制作起泡

合作伙伴

深圳网站优化推广公司

龙岗网络公司
深圳网站优化
龙岗网站建设
坪山网站建设
百度标王推广
天下网标王
SEO优化按天计费
SEO按天计费系统