1.4俯瞰Spring风景线

1.4俯瞰Spring风景线

要了解Spring的风景线,只需查看完整版Spring Initializr web表单上的大量复选框列表即可。它列出了100多个依赖项选择,所以我不会在这里全部列出或者提供一个屏幕截图。但我鼓励你们去看看。与此同时,我将提到一些亮点。

1.4.1 Spring核心框架

正如你所期望的,Spring核心框架是Spring领域中其他一切的基础。它提供了核心容器和依赖注入框架。但它也提供了一些其他的基本特性。

其中包括Spring MVCSpring web框架。已经了解了如何使用Spring MVC编写控制器类来处理web请求。但是,您还没有看到的是,Spring MVC也可以用于创建产生非HTML输出的REST API。我们将在第2章深入研究Spring MVC,然后在第6章中讨论如何使用它来创建REST API

Spring核心框架还提供了一些基本数据持久性支持,特别是基于模板的JDBC支持。将在第3章中看到如何使用JdbcTemplate

Spring的最新版本(5.0.8)中,添加了对响应式编程的支持,包括一个新的响应式web框架 —— Spring WebFlux,它大量借鉴了Spring MVC。将在第3部分中看到Spring的响应式编程模型,并在第10章中看到Spring WebFlux

1.4.2 Spring Boot

我们已经看到了Spring Boot的许多好处,包括启动依赖项和自动配置。在本书中我们确实会尽可能多地使用Spring Boot,并避免任何形式的显式配置,除非绝对必要。但除了启动依赖和自动配置,Spring Boot还提供了一些其他有用的特性:

  • Actuator提供了对应用程序内部工作方式的运行时监控,包括端点、线程dump信息、应用程序健康状况和应用程序可用的环境属性。
  • 灵活的环境属性规范。
  • 在核心框架的测试辅助之外,还有额外的测试支持。

此外,Spring Boot提供了一种基于Groovy脚本的替代编程模型,称为Spring Boot CLI(命令行界面。使用Spring Boot CLI,可以将整个应用程序编写为Groovy脚本的集合,并从命令行运行它们。我们不会在Spring Boot CLI上花太多时间,但是当它适合我们的需要时,我们会接触它。

Spring Boot已经成为Spring开发中不可或缺的一部分;我无法想象开发一个没有它的Spring应用程序。因此,本书采用了以Spring Boot为中心的观点,当我提到Spring Boot正在做的事情时,你可能会发现我在使用Spring这个词。

1.4.3 Spring Data

尽管Spring核心框架提供了基本的数据持久性支持,但Spring Data提供了一些非常惊人的功能:将应用程序的数据存储库抽象为简单的Java接口,同时当定义方法用于如何驱动数据进行存储和检索的问题时,对方法使用了命名约定。

更重要的是,Spring Data能够处理几种不同类型的数据库,包括关系型(JPA、文档型(Mongo、图型(Neo4j)等。在第3章中,将使用Spring Data来帮助创建Taco Cloud应用程序的存储库。

1.4.4 Spring Security

应用程序安全性一直是一个重要的主题,而且似乎一天比一天重要。幸运的是,SpringSpring security中有一个健壮的安全框架。

Spring Security解决了广泛的应用程序安全性需求,包括身份验证、授权和API安全性。尽管Spring Security的范围太大,本书无法恰当地涵盖,但我们将在第4章和第12章中讨论一些最常见的用例。

1.4.5 Spring IntegrationSpring Batch

在某种程度上,大多数应用程序将需要与其他应用程序集成,甚至需要与同一应用程序的其他组件集成。为了满足这些需求,出现了几种应用程序集成模式。Spring IntegrationSpring Batch为基于Spring的应用程序提供了这些模式的实现。

Spring Integration解决了实时集成,即数据在可用时进行处理。相反,Spring Batch解决了批量集成的问题,允许在一段时间内收集数据,直到某个触发器(可能是一个时间触发器)发出信号,表示该处理一批数据了。将在第9章中研究Spring BatchSpring Integration

1.4.6 Spring Cloud

在我写这篇文章的时候,应用程序开发领域正在进入一个新时代,在这个时代中,我们不再将应用程序作为单个部署单元来开发,而是将由几个称为 微服务 的单个部署单元组成应用程序。

微服务是一个热门话题,解决了几个实际的开发和运行时问题。然而,在这样做的同时,他们也带来了自己的挑战。这些挑战都将由Spring Cloud直接面对,Spring Cloud是一组用Spring开发云本地应用程序的项目。

Spring Cloud覆盖了很多地方,这本书不可能涵盖所有的地方。我们将在第131415章中查看Spring Cloud的一些最常见的组件。关于Spring Cloud的更完整的讨论,我建议看看John CarnellSpring Microservices in Action(Manning, 2017, www.manning.com/books/spring-microservices-in-action

上一页
下一页