SpringBoot及其特性

news/2024/6/18 22:03:35 标签: spring boot, 后端

0.前言

Spring 框架提供了很多现成的功能。那么什么是 Spring Boot?使用 Spring 框架,我们可以避免编写基础框架并快速开发应用程序。为了让 Spring 框架提供基础框架,我们需要向 Spring 框架描述有关我们的应用程序及其组件的信息。
不只是我们的应用程序组件需要配置;甚至 Spring 框架提供的类也必须在 Spring 框架内配置为 Bean。

SpringBoot

1.Spring配置

1.1.基于 XML 的配置:一种经典方法

  • 我们可以向 Spring 框架提供有关我们类的配置信息的一种方法是使用基于 XML 的配置,特别是 Spring Bean 配置文件。当然,Spring 为我们处理了大部分过程,但一切都是需要付出代价的。我们需要提供大量有关我们的应用程序及其组件的信息,以便 Spring 理解并提供所需的功能。似乎在某个时候,我们可能会发现自己花费了大量时间来描述应用程序的细节。这会导致使用 Spring 框架时的复杂性增加,使人们难以使用。
  • Spring Framework 开发人员注意到了这一现象,从而引入了使用注释配置应用程序信息的替代方法。以 XML 格式编写配置可能很麻烦、容易出错且耗时,因为它很复杂。因此,Spring 通过使用注释引入了基于 XML 的配置的替代方案。

1.2.原型注释:一次飞跃

  • Spring 引入了原型注释,以加快 Spring 框架中应用程序类的配置。诸如@Repository、@Service、@Controller、@RestController、@Autowired、@Qualifier等注释可直接应用于@Component我们的应用程序类。这种方法可帮助我们绕过基于 XML 的配置。
  • 然而,有时我们需要将 Spring Framework 本身或第三方库提供的类合并到我们的应用程序中。在这些情况下,我们可能无法访问这些类的源代码。因此,我们不能直接将构造型注释应用于这些类。
  • 现在,开发应用程序的主要方法是对具有源代码的类使用构造型注释,而对没有可用源代码的框架或第三方库则依赖 Spring Bean 配置。这种组合需要同时使用 Spring Bean 配置和构造型注释。然而,我们似乎还没有完全解决最初的问题。为了解决这个问题,Spring 引入了 Java 配置方法。
  • 现在,开发应用程序的唯一方法是为我们的类(具有源代码)编写 Stereotype 注释,并使用 Spring Bean 配置框架或第三方库(没有源代码)。这种组合涉及同时使用Spring Bean Configuration和Stereotype注释。
  • 但是,我们似乎还没有完全克服最初的问题。为了解决这个问题,Spring引入了这种Java Configuration方法。

1.3.Java 配置:补足差距

Spring 引入了 Java 配置方法,无需在 Spring Bean 配置文件中配置没有源代码的类,我们可以在单独的 Java 配置类中编写它们的配置。
优点:
无需记住配置的 XML 标签。类型安全的配置。然而,Java 配置方法似乎并未完全解决这个问题。这是因为,除了 XML 之外,我们现在还需要在框架组件的配置中编写大量代码。Java 配置方法似乎并没有提供比基于 XML 的配置更好的替代方案。开发人员对需要​​编写大量代码感到沮丧。
除了简化 Spring 框架集成之外,Spring Boot 还提供内置功能,用于执行将应用程序打包为独立 JAR、设置嵌入式 Web 服务器以及管理应用程序依赖项等任务,使其成为快速开发和部署的综合工具。

2.SpringBoot的功能

2.1.自动配置:

在使用 Spring Framework 开发应用程序期间,不仅仅是我们的应用程序组件需要在 IoC(控制反转)容器内以 bean 定义的形式进行配置。以这种方式配置 Spring Framework 类似乎需要大量信息,从而导致更复杂且耗时的开发过程。这就是自动配置概念发挥作用的地方。

开发人员和框架创建者都了解配置框架组件所需的属性和值。鉴于这种共同的理解,人们可能会质疑为什么框架本身不会自动配置其组件以促进我们应用程序的运行。这就是自动配置的本质。

尤其是 Spring Boot,它采用了一种固定的方法来自动配置框架组件。它会扫描我们应用程序的类路径中存在的库并推断出必要的框架组件。它负责为这些组件配置适当的默认值。

例如,如果 Spring Boot 检测到类路径中存在“spring-jdbc”库并识别出正在使用的数据库驱动程序(在本例中假设为“h2”),它将继续配置基本 bean 定义,例如DriverManagerDataSource、DataSourceTransactionManager和JdbcTemplate,所有这些都设置为“h2”数据库的默认值。

如果要求偏离这些默认值,Spring Boot 会无缝地适应程序员在配置框架组件时的输入。

通过利用自动配置的强大功能,开发人员可以轻松地深入编写应用程序的核心业务逻辑,而 Spring Boot 则负责处理复杂的框架组件。

本质上,自动配置减轻了手动配置的负担,自动使用为应用程序量身定制的默认设置来设置 Spring Framework 组件。这样,开发人员就无需再为其应用程序微调 Spring Framework。

2.2. 启动依赖项

Spring Boot 提供了 Maven 原型,旨在加快项目依赖项的配置。这些原型称为“引导启动器依赖项”,可根据所选的 Spring Framework 版本将 Spring Framework 模块和外部库依赖项与适当的版本对齐,从而简化 Spring Framework 模块和外部库依赖项的整合。

在开发基于 Spring Framework 的应用程序时,开发人员需要配置项目将使用的依赖项。这项任务通常很繁琐,涉及排除依赖项故障和查找兼容版本的潜在挑战。此外,这不仅涉及设置外部库类,还涉及辨别各个 Spring Framework 模块之间的版本兼容性。

此外,当考虑将应用程序迁移到更高或更新的 Spring Framework 版本时,必须重新审视调试和识别依赖项的精确版本的整个过程。

为了应对这些挑战并简化设置 Spring Framework 项目及其兼容依赖项(包括第三方依赖项)的过程,Spring Boot 引入了“启动依赖项”的概念。

对于每种项目类型或技术,Spring Boot 都提供了专用的启动器。这些启动器可以无缝集成到 Maven 或 Gradle 项目中。这样,Spring Boot 就承担起了整合必要的 Spring 相关模块和外部库的责任,所有这些都配备了兼容的版本。

2.3.执行器端点:

使用 Spring Boot,我们能够开发从开发顺利过渡到生产级部署的应用程序。Actuator Endpoints是一项强大的功能,它提供了各种内置端点,包括健康检查、指标评估、内存洞察等功能。重要的是,这些端点可以轻松启用,从而方便在生产环境中部署应用程序。这样就无需添加额外的代码来确保应用程序适合生产部署。

Spring Boot 显著简化了应用程序开发过程,使其更加高效和易于管理。其突出特点之一是包含执行器端点。这些端点是运行时监视和管理应用程序的重要工具。它们为应用程序的运行状况、性能和其他方面提供了宝贵的见解。

例如,“健康”端点支持实时健康检查,使管理员能够及时发现任何问题。“指标”端点提供了一套全面的指标,有助于进行性能分析。此外,“内存”端点提供有关内存使用情况的信息,这对于优化资源分配至关重要。

Actuator Endpoints 的优点在于其开箱即用和易于集成。只需启用所需的端点,开发人员就可以访问有关应用程序的宝贵信息,而无需编写额外的代码。这不仅节省了时间,还提高了在不同环境中管理和监控应用程序的效率。

2.4.DevTools【开发特性】

借助 DevTools,代码调试变得非常高效。通常,当我们在开发过程中修改代码时,我们不得不重新部署并重新启动应用服务器。不幸的是,这个过程会耗费大量的开发时间。然而,DevTools 带来了令人耳目一新的变化。它确保我们所做的任何代码更改都能无缝反映出来,而无需完全重新启动应用服务器。相反,DevTools 会动态地将我们更改的特定类重新加载到 JVM 内存中。这种智能功能大大缩短了调试时间,促进了更顺畅、更高效的开发过程。

2.5. 嵌入式容器

嵌入式容器的概念是一项显著的功能,它增强了开发过程。在这种方法中,服务器作为库集成到项目中。因此,您可以直接从代码库执行项目。无需外部安装容器,也无需繁琐的打包和部署到单独服务器的过程。这种简化的方法大大加快了应用程序开发的开发和质量保证阶段。

2.6.Spring Boot CLI:

Spring Boot 命令行界面 (CLI) 引入了一个强大的工具,可以快速开发和执行原型代码。通过利用 Spring CLI,您可以非常轻松地编写 Spring Framework 代码,类似于创建 RestController。然后可以使用 CLI 快速执行此代码。

此 CLI 可用作 shell,可以方便地安装在本地计算机上。它使您能够快速编写和运行 Spring Framework 代码,而无需进行大量设置或配置。Spring Boot CLI 的主要目标是促进原型和实验代码的快速执行。这种快速的开发过程在测试和验证新概念或想法时显著提高了敏捷性。

3.SpringBoot的功能优势

  • 快速启动体验: Spring Boot 为构建 Spring Framework 应用程序提供了无缝起点,加快了设置过程。
  • 快速应用程序开发:借助 Spring Boot 的简化方法,开发人员可以快速开发应用程序,从而提高效率和生产力。
  • 自动配置:自动配置功能可使用默认设置高效地配置框架组件。在需求不同的情况下,简单的配置可轻松调整组件。
  • 生产级部署: Spring Boot 支持部署符合生产级标准的应用程序,确保稳定性和可靠性。
  • 增强的非功能性方面:除了核心功能之外,Spring Boot 还解决了应用程序开发的非功能性方面。这包括调试、开发期间自动重启以及用于指标和内存管理的强大工具等功能。

本质上,Spring Boot 通过提供一系列简化流程、增强生产准备和增强开发体验的功能,彻底改变了 Spring Framework 应用程序开发。


http://www.niftyadmin.cn/n/5476537.html

相关文章

JavaScript之作用域链详解

在JavaScript中,作用域链是一个重要的概念,它决定了变量和函数的可访问性。作用域链是由变量对象的列表组成,这些变量对象按照它们被创建的顺序排列。本文将详细介绍JavaScript作用域链,包括什么是作用域链、作用域链的创建过程、…

文旅元宇宙|“元宇宙+”全面赋能智慧文旅场景建设

元宇宙作为下一代互联网入口,正在潜移默化的改变着人生的生活方式,不断催生新业态,带给人们前所未有的体验。元宇宙概念的崛起,正以其独特的魅力,引领着一场全新的智慧文旅革命。元宇宙,这个融合了虚拟现实…

LinkedHashMap 集合源码分析

LinkedHashMap 集合源码分析 文章目录 LinkedHashMap 集合源码分析一、字段分析二、内部类分析三、构造方法分析四、内部方法分析五、总结 LinkedHashMap 是 HashMap 的子类,在 HashMap 的基础上维护了双向链表,保证了有序性。默认是不排序的&#xff0c…

如何恢复被.locked勒索病毒加密的服务器和数据库?

.locked勒索病毒有什么特点? .locked勒索病毒的特点主要包括以下几个方面: 文件加密:.locked勒索病毒会对受感染设备上的所有文件进行加密,包括图片、文档、视频和其他各种类型的重要文件。一旦文件被加密,文件的扩展…

每天学习python30分钟(第三天)

一.面向对象 了解oop for i in range(1,5):for j in range(1,5):for k in range(1,5):if((i!j) and (i!k) and (j!k)):print(i,j,k) 二.类 基础的类使用 class CuteCat: #通过calss创建可爱猫猫类def __init__(self,cat_name,cat_age,cat_color): #定义属性s…

前端学习<二>CSS基础——16-浏览器的兼容性问题

我们在div里放一个img&#xff0c;发现&#xff1a; 在html和html5中&#xff0c;div的长宽是不同的&#xff0c;后者的高度要超过几个像素。 比如说&#xff0c;下面这个是html的。 <!DOCTYPE html><html lang"en"><head><meta charset"…

2024-04-07 作业

作业要求&#xff1a; 1> 思维导图 2> 自由发挥应用场景实现一个登录窗口界面。 【可以是QQ登录界面、也可以是自己发挥的登录界面】 要求&#xff1a;尽量每行代码都有注释 作业1&#xff1a; 作业2&#xff1a; 运行代码&#xff1a; #include "myqwidget.h&quo…

揭秘程序员面试技巧,助你轻松拿offer!

上文 程序员面试是求职者展现自身技术实力、沟通能力和职业素养的关键环节。为了在面试中脱颖而出&#xff0c;求职者需要掌握一些实用的面试技巧。以下将详细阐述程序员面试技巧&#xff0c;助您在面试中取得更好的成绩。 一、面试前准备 了解公司及职位 在面试前&#xff0…