Spring 作为一个被广泛使用的 Java 框架,让我们可以很容易的创建基于 Java 的企业级应用。它提供了开发企业级应用所需要的所有东西,同时也支持基于 JVM (Java Virtual Machine, Java 虚拟机) 的语言,如 Groovy 和 安卓开发官方语言 Kotlin。Spring 同样是一个非常灵活的框架,可以根据我们自身应用的需求,来创建不同类型的软件架构。
本教程后续课程将基于 Spring Framework 5.0 以上的版本进行,该版本需要安装 JDK 8+ 的版本。
在本教程开始之前,我们将对 Spring 框架进行一些简单的介绍,让零基础的 Java 开发者能够有一些大概的印象。
Spring 的意思
当我刚开始接触 Spring 的时候,打开官网就一脸懵逼,我们先来感受一下。
Spring Projects这么多东西,我们该先从哪一个学习。
我们平时说的 Spring 其实在不同上下文里面有不同的意思。它有时候指的是 Spring Framework 这个项目本身,这个项目作为 Spring 全家桶最核心的一个框架,上图所有其他的 Spring 项目都是基于 Spring Framework 而构建的;然后有时间我们所说的 Spring 指代的是整个 Spring 全家桶,包括 Spring Framework, Spring Boot, Spring Clouod 等。
在本教程中,我们将要学习的也是作为 Spring 全家桶基础框架的 Spring Framework,但是在开发环境的搭建中,我们会使用 Spring Boot 来简化我们的教程环境搭建。
Spring Framework 以模块化的形式进行发布,我们开发的应用可以根据我们的需求来选择我们所需要的模块,这是一种非常棒的设计思想,模块化的设计可以让程序间的不同功能或依赖解耦,让我们的程序更加灵活也更容易扩展(增加新的功能)。
在 Spring Framework 的核心模块中,最重要的是 核心容器,该容器包括了配置模型和依赖注入(控制反转)的机制。除了这些基础设施,框架还提供了其他的基础功能来支持不同架构的应用,如:
- 消息发送 Messaging
- 事务性数据 Transactional data
- 持久化 Persistence
- Web
- 基于 Servlet 的 Spring MVC 框架和 Spring WebFlux Reactive 框架
Spring Framework 的历史
Spring 框架最早在 2003 年 Java 企业应用开发框架 J2EE 的一个补充,Spring 可以作为 J2EE 的一个子集,精选了 J2EE 中的部分 Specification,包括了:
- Servlet API
- WebSocket API
- Concurrency Utilities
- JSON Binding API
- Bean Validation
- JPA
- JMS
- JTA/JCA
Spring Framework 同时还支持 依赖注入 JSR330 和 通用注解 JRS250 规范。
设计哲学
Spring Framework 带给我最大的好处并不是框架本身提供的这些功能,而是它的设计思想,和方式。在 Spring 中,有以下几个原则:
- 为每一层都提供选择的机会。比如,你可以更换持久层的底层框架(如切换数据库)而不用修改你的代码。
- 容纳不同的观点。提供更多的灵活性,而不是关注在事情应该怎么被完成本身,对于同一个事情,从不同维度提供多种可以解决的方案。
- 保持强大的向后兼容性。
- 关注API的设计。
- 高质量的代码。Spring 的代码堪称艺术品,Clean Code 且有完善的 Javadoc,在各包之间没有循环依赖。
以上便是对 Spring 的一些简单的介绍。
网友评论