发布于 2026-01-06 1 阅读
0

Spring Boot:你需要知道的一切,以及那些没人告诉你的事(第一部分)

Spring Boot:你需要知道的一切,以及那些没人告诉你的事(第一部分)

对于所有希望使用 Java 开发应用程序并以此为职业的人来说,他们也应该学习面向对象编程 (OOP) 的所有知识,正如我在文章《成为 Java 专家的 15 个技巧! 》中提到的那样,在学习框架/库的同时,我们还必须在其他方面进行发展,这将有助于我们作为开发人员的职业生涯。

在使用 Java 进行应用程序开发的早期,配置开发环境的过程是复杂、枯燥且耗时的。

但是,随着时间的推移,一些工具被创造出来,它们配置了这些功能,并深受开发者的喜爱。其中,在大型环境甚至小型项目中应用最广泛的框架是Pivotal 的Spring Boot,它让我们的生活变得轻松许多,真的,哈哈。

我们这些身处开发团队的人都知道,完成工作的时间很短,责任也很重大,不能把时间浪费在配置项目上,而应该专注于开发。因此,在本文中,我们将介绍您应该了解的关于此框架的要点,以及使用它的最佳实践技巧。

我们的目标是帮助您理解 SpringBoot,帮助您简化应用程序(Java)的开发,减少配置和优化的数量,但请记住不要重置配置,因为它们仍然存在,但如今我们配置应用程序的速度是 10 年前不可想象的。

本文将按以下顺序介绍掌握Spring Boot 的方法:

本文分为 4 个部分:

Spring Boot:你需要知道的一切,以及那些没人告诉你的事。#第二部分

Spring Boot:你需要知道的一切,以及那些没人告诉你的事。#Part03

Spring Boot:你需要知道的一切,以及那些没人告诉你的事。#Part04

接下来我们将从理论部分开始,内容如下:

1. 什么是 Spring?
2. 什么是 Spring Boot?
3. Spring 组件
4. Spring Boot Starter
5. Spring Boot AutoConfigurator
6. Spring Boot Actuator


1. 什么是春天

Spring 是一个 Java 框架,其创建的目的是为了简化应用程序的开发,它采用了控制反转和依赖注入的概念。Spring 框架内部包含 Spring MVC 和 Core Technologies(它是 Spring 的基础,其中包含依赖注入包)。

2. 什么是 Spring Boot?

Spring Boot 是一个源自 Spring(MVC)的框架,Spring 是一个基于设计模式、IOC(控制反转)和 ID(依赖注入)的 Java 平台框架,这两者都是项目管理的标准,有助于实现代码的解耦。

Spring 框架的创建是为了简化Web 应用程序的配置但是您仍然配置了大量的 XML 文件,这并没有达到您的目标,但是它已经在许多情况下帮助您,此外,该项目还使您的层定义得非常清晰。

因此,框架中添加了一个新项目来改变这种局面,并抽象出完整配置可能带来的所有复杂性:O Spring Boot

因此,Spring Boot 1.0于2014 年 4 月发布。Spring Framework 4.2.0采用更简单、更直接的开发模型,这一框架对于Spring 生态系统成为程序员的宠儿起到了决定性作用。

但它究竟提供了什么,才使其发展如此迅速?

它以预配置的方式提供了通用应用程序所需的大部分组件,使应用程序能够快速在生产环境中运行,减少了配置和部署工作量,并且已经与 Tomcat 应用程序服务器耦合。

简而言之,Spring Boot 是一个预配置的模板,用于开发和运行基于 Spring 的应用程序。


3. 弹簧组件

截至撰写本文时,spring-boot 的版本为 3.0.1,它是spring.io的一部分,包含大约 23 个库,可帮助您构建应用程序:

  1. Spring Boot
  2. Spring Framework
  3. Spring Data
  4. Spring Cloud
  5. Spring Cloud 数据流
  6. Spring Security
  7. Spring for GraphQL
  8. 春季学期
  9. Spring Integration
  10. 春季 HATEOAS
  11. Spring REST 文档
  12. Spring Batch
  13. Spring AMQP
  14. Spring CredHub
  15. 春花
  16. Spring for Apache Kafka
  17. Spring LDAP
  18. 弹簧壳
  19. Spring 状态机
  20. 弹簧跳
  21. Spring Web Flow
  22. Spring Web Services

但是库这么多,我该如何确定自己应该先理解哪些库呢

让我们把第一部分分成 3 个部分:

  • Spring Boot 启动器
  • Spring Boot 自动配置器
  • 弹簧靴执行器

4. Spring Boot Starter

当我们创建应用程序时,我们希望提供对该应用程序的访问,因此我们开发 REST 服务;目前,我们在单个应用程序中使用这些 REST 服务,它们依赖于 Spring MVC、Tomcat 和 Jackson 等库以及其他许多依赖项。

因此,Spring Boot 可以帮助我们减少手动添加的依赖项数量,只需添加一个依赖项即可。所以,无需手动指定依赖项,只需将以下库添加到 pom.xml 文件中即可:

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-web</artifactId>
</dependency>

Enter fullscreen mode Exit fullscreen mode

运行以下 Maven 命令时:

mvn dependency:tree
Enter fullscreen mode Exit fullscreen mode

结果:

图片描述

这条命令会显示一个库的所有依赖项:
每一层都会显示它是否有其他内部依赖项,第一层是:

org.springframework.boot:spring-boot-starter-json
org.springframework.boot:spring-boot-starter-tomcat
org.springframework:spring-web

运行该命令后可以看到,Springboot 的功能是将 Spring Boot 项目中产生的各种依赖项合并为一个单一的依赖项,从而无需在 Maven 或 Gradle 中配置多个依赖项。

我们注意到,如果逐个添加,这个过程会非常繁琐。因此,Spring Boot 使用 starter 来显著减少这种繁琐的工作量。

请记住,正是这个库使您能够创建控制器来使用我们稍后将看到的注解。


5. Spring Boot 自动配置器

Spring Boot 自动配置会根据您添加的 jar 依赖项自动配置您的 Spring 应用程序。

例如,如果 HSQLDB 在您的类路径中,并且您没有手动配置任何数据库连接 bean,Spring Boot 将自动配置一个内存数据库。

您需要通过在某个 @Configuration 类中添加 @EnableAutoConfiguration 或 @SpringBootApplication 注解来启用自动配置。

是的,但所有设置都在关于此过程的官方文档中。

它负责管理 Spring Boot 应用程序的配置过程,提供默认设置并将其与可能的自定义设置合并,您可以创建带注解的类来配置应用程序的某些功能。

在 Spring Boot 应用程序中,可以使用传统的 @SpringBootApplication 注解来查看 AutoConfigurator,该注解位于应用程序的初始化方法之上。

从内部来看,aSpringBootApplication 注解是 Spring 传统 @Configuration、@ComponentScan 和 @EnableAutoConfiguration 注解的组合。


6.弹簧靴执行器

Spring Boot Actuator 为我们提供了端点,使我们能够更轻松地从应用程序中获取指标。

配置 Maven 时,需要使用以下依赖项:

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Enter fullscreen mode Exit fullscreen mode

Spring Boot AutoConfigurator 定义 Web 服务器应在本地主机的 8080 端口上公开,但您可以重新定义此端口。不过,真正负责在 Web 服务器上执行此配置的是 Actuator。

我的 GitHub 上有一个名为SpringBootActuatorPrometheus 的项目,它讲解了如何激活它并与 Prometheus 和 Kibana 连接,以及如何使用 Micrometer 指标和 Spring Boot Statistic 可视化其图表。

本文分为 4 个部分:

Spring Boot:你需要知道的一切,以及那些没人告诉你的事。#第二部分

Spring Boot:你需要知道的一切,以及那些没人告诉你的事。#Part03

Spring Boot:你需要知道的一切,以及那些没人告诉你的事。#Part04

文章来源:https://dev.to/weder96/spring-boot-everything-you-need-to-know-and-what-nobody-told-you-o4j