文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

SpringBoot的设计理念和目标、整体架构你有深入了解吗

2024-12-10 15:38

关注

阅读 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 所拥有的强大功能之一就是可以集成各种开源软件。 但随着互联网的高速发展,各种框架层出不穷,这就对系统架构的灵活性、扩展性、可伸缩性、高可用性都提出了新的要求。随着项目的发展,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 不是为已解决的问题提供新的解决方案,而是为平台和开发者带来一种全新的体验:整合成熟技术框架、屏蔽系统复杂性、简化已有技术的使用,从而降低软件的使用]槛,提升软件开发和运维的效率。

在 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 两个核心的模块,而其他相关功能又都是基于这两个核心模块展开的。本文相关的源代码分析也是围绕两个核心模块展开。 

来源:今日头条内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯