当前位置: 首页 > 科技观察

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

时间:2023-03-16 00:55:06 科技观察

你对SpringBoot的设计理念、目标和整体架构有深入的了解吗?源码阅读工具读者可以根据自己的日常习惯选择熟悉的代码阅读工具,如IntellijIDEA、SpringToolSuite、Eclipse、MyEclipse等。在阅读SpringBoot源码之前,我们需要搭建一个基本的阅读环境。SpringBoot对JDK和构建工具有一定的要求,如JDK8+、Maven3.3+、Gradle5.x+等环境,满足相应要求即可。为了达到更好的学习效果,建议大家采用示例+调试的方式进行学习。因此,源码阅读I对实例的编写、运行、调试等功能的支持是最好的。本文使用ItelljIDEA(简称IDEA)作为代码阅读工具,采用示例+调试两种纯源码阅读模式配合学习。其中,纯源码阅读模式可以帮助我们更好的对代码进行注释、编写和单元测试,示例+调试模式可以让我们更好的了解整个项目的运行过程和功能的具体使用。图1-2和图1-3展示了通过IDEA读取代码的两种模式。SpringBoot的设计理念和目标我们知道,Spring的强大特性之一就是可以集成各种开源软件。然而,随着互联网的飞速发展,各种框架层出不穷,这对系统架构的灵活性、可扩展性、扩展性、高可用性提出了新的要求。随着项目的发展,Spring逐渐集成了更多的开源软件,引入了大量的配置文件,这会导致程序出错率高,运行效率低的问题。为了解决这些情况,SpringBoot应运而生。SpringBoot本身不提供Spring的核心功能,只是作为Spring的脚手架框架,达到快速搭建项目、预设三方配置、开箱即用的目的。设计理念约定优于配置(ConventionOverConfiguration),也称为按约定编程,是一种软件设计范式,旨在减少软件开发人员需要做出的决策数量,执行起来简单灵活。SpringBoot的核心设计完美地遵循了这种范式。从细节到整体,SpringBoot的功能都是基于“约定好于配置”的开发理念。从基础框架的构建、配置文件、中间件的集成、内置容器以及生态中的各种Starters,都遵循这种设计范式。Starter作为SpringBoot的核心功能之一,提供基于自动配置代码的自动配置模块和依赖,让软件集成变得简单易用。同时,SpringBoot也在鼓励所有软件组织创建自己的Starter。DesignGoals说到SpringBoot的设计目标,值得一提的是SpringBoot的研发团队Pivotal,Inc.Pivotal的企业目标是改变世界构建软件的方式(Wearetransforminghowtheworldbuildssoftware)。Pivotal为企业客户提供云原生应用开发PaaS平台和服务,采用敏捷软件开发方法论帮助企业客户开发软件,从而提高软件开发人员的工作效率,降低软件运维成本,实现企业数字化转型,IT创新,并帮助企业客户最终实现业务创新。SpringBoot框架的设计理念完美遵循其所属企业的目标。SpringBoot不为已解决的问题提供新的解决方案,而是为平台和平台带来全新的体验。开发者:集成成熟的技术框架,屏蔽系统复杂性,并简化现有技术的使用,从而降低软件成本。使用]门槛提高软件开发和运维效率。SpringBoot整体架构在1.2节中已经介绍了SpringBoot的核心项目结构和功能。本节我们将从架构层面理解SpringBoot不同模块之间的依赖关系,如图1-4所示。.在图1-4中,为了更清楚地表达SpringBoot项目之间的关系,我们基于依赖的传递性省略了一些依赖。比如SpringBootStarters不仅依赖SpringBootAutoconfigure项目,还依赖SpringBoot和Spring,而SpringBootAutoconfigure项目又依赖SpringBoot,而SpringBoot又依赖Spring相关项目。因此,图中省略了SpringBootStarters与底层依赖的关联。SpringBootParent就是SpringBoot和图中依赖SpringBoot项目的Parent项目。同样为了结构清晰,图中没有显示相关关联。从图1-4中,我们可以清楚地看到SpringBoot几乎完全基于Spring,同时提供了SpringBoot和SpringBootAutoconfigure两个核心模块,其他相关功能都是基于这两个核心模块。本文相关的源码分析也围绕着两个核心模块展开。