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 个库,可帮助您构建应用程序:
- Spring Boot
- Spring Framework
- Spring Data
- Spring Cloud
- Spring Cloud 数据流
- Spring Security
- Spring for GraphQL
- 春季学期
- Spring Integration
- 春季 HATEOAS
- Spring REST 文档
- Spring Batch
- Spring AMQP
- Spring CredHub
- 春花
- Spring for Apache Kafka
- Spring LDAP
- 弹簧壳
- Spring 状态机
- 弹簧跳
- Spring Web Flow
- 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>
运行以下 Maven 命令时:
mvn dependency:tree
结果:
这条命令会显示一个库的所有依赖项:
每一层都会显示它是否有其他内部依赖项,第一层是:
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>
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
