声明:本文内容学习自《Spring实战》(第五版),并参考Spring官方教程等资料,仅以学习为目的。如有侵权,则删除。
Spring核⼼框架是Spring领域中⼀切的基础。它提供了核⼼容器
和依赖注⼊框架,另外还提供了⼀些其他重要的特性。
Spring MVC,也就是Spring的Web框架。使⽤Spring MVC来编写控制器类以处理Web请求。Spring MVC还能⽤来创建REST API,以⽣成⾮HTML的输出。
Spring核⼼框架还提供了⼀些对数据持久化的基础⽀持,尤其是基于模板的JDBC⽀持(使⽤JdbcTemplate)。
在最新版本的Spring中,还添加了对反应式(reactive)⻛格编程的⽀持,其中包括名为Spring WebFlux的新反应式Web框架,这个框架⼤量借鉴了Spring MVC。
Spring反应式编程模型和Spring WebFlux。
- Spring旨在简化开发⼈员所⾯临的挑战,⽐如创建Web应⽤程序、处理数据库、保护应⽤程序以及实现微服务。
- Spring Boot构建在Spring之上,通过简化依赖管理、⾃动配置和运⾏时洞察,使Spring更加易⽤。
- Spring应⽤程序可以使⽤Spring Initializr进⾏初始化。Spring Initializr是基于Web的应⽤,并且为⼤多数Java开发环境提供了原⽣⽀持。
- 在Spring应⽤上下⽂中,组件(通常称为bean)既可以使⽤Java或XML显式声明,也可以通过组件扫描发现,还可以使⽤Spring Boot⾃动配置功能实现⾃动化配置。
Spring Boot
Spring Bot处理starter依赖和自动配置还有其他的特性
- Actuator能够洞察应⽤运⾏时的内部⼯作状况,包括指标、线程dump信息、应⽤的健康状况以及应⽤可⽤的环境属性
- 灵活的环境属性规范;
- 在核⼼框架的测试辅助功能之上提供了对测试的额外⽀持
- Spring Boot还提供了⼀个基于Groovy脚本的编程模型,称为
Spring Boot 命令⾏接⼝(Command-Line Interface,CLI)。使⽤SpringBoot CLI,可以将整个应⽤程序编写为Groovy脚本的集合,并通过命令⾏运⾏它们
Spring Data
Spring Data提供令⼈惊叹的功能:Spring Data将应⽤程序的数据repository定义为简单的Java接⼝,在定义驱动存储和检索数据的⽅法时使⽤⼀种命名约定即可。
此外,Spring Data能够处理多种不同类型的数据库,包括关系型数据库(JPA)、⽂档数据库(Mongo)、图数据库(Neo4j)等。
Spring Security
Spring Security框架解决应用程序通用的安全性需求,包括身份验证、授权和API安全性等,Spring Security是一个安全框架。
Spring Integration和Spring Batch
⼤多数应⽤程序都需要与其他应⽤甚⾄本应⽤中的其他组件进⾏集成。在这⽅⾯,有⼀些应⽤程序集成模式可以解决这些需求。
Spring Integration解决实时集成问题。在实时集成中,数据在可用的时候会马上得到处理。
Spring Batch解决的则是批处理集成的问题,在此过程中,数据可以收集⼀段时间,直到某个触发器(可能是⼀个时间触发器)发出信号,表⽰该处理批量数据了才会对数据进⾏批处理。
Spring Cloud
应⽤程序开发领域正在进⼊⼀个新的时代,我们不再将应⽤程序作为单个部署单元来开发,⽽是使⽤由微服务组成的多个独⽴部署单元来组合形成应⽤程序。
Spring Cloud是Spring开发云原生应用程序的一组项目。