0. Spring 简介 | Spring 学习笔记

Spring 作为一个被广泛使用的 Java 框架,让我们可以很容易的创建基于 Java 的企业级应用。它提供了开发企业级应用所需要的所有东西,同时也支持基于 JVM (Java Virtual Machine, Java 虚拟机) 的语言,如 Groovy 和 安卓开发官方语言 KotlinSpring 同样是一个非常灵活的框架,可以根据我们自身应用的需求,来创建不同类型的软件架构。

本教程后续课程将基于 Spring Framework 5.0 以上的版本进行,该版本需要安装 JDK 8+ 的版本。

在本教程开始之前,我们将对 Spring 框架进行一些简单的介绍,让零基础的 Java 开发者能够有一些大概的印象。

Spring 的意思

当我刚开始接触 Spring 的时候,打开官网就一脸懵逼,我们先来感受一下。

0. Spring 简介 | Spring 学习笔记_第1张图片
Spring Projects

这么多东西,我们该先从哪一个学习。

我们平时说的 Spring 其实在不同上下文里面有不同的意思。它有时候指的是 Spring Framework 这个项目本身,这个项目作为 Spring 全家桶最核心的一个框架,上图所有其他的 Spring 项目都是基于 Spring Framework 而构建的;然后有时间我们所说的 Spring 指代的是整个 Spring 全家桶,包括 Spring FrameworkSpring BootSpring Clouod 等。

在本教程中,我们将要学习的也是作为 Spring 全家桶基础框架的 Spring Framework,但是在开发环境的搭建中,我们会使用 Spring Boot 来简化我们的教程环境搭建。

Spring Framework 以模块化的形式进行发布,我们开发的应用可以根据我们的需求来选择我们所需要的模块,这是一种非常棒的设计思想,模块化的设计可以让程序间的不同功能或依赖解耦,让我们的程序更加灵活也更容易扩展(增加新的功能)。

Spring Framework 的核心模块中,最重要的是 核心容器,该容器包括了配置模型依赖注入(控制反转)的机制。除了这些基础设施,框架还提供了其他的基础功能来支持不同架构的应用,如:

  • 消息发送 Messaging
  • 事务性数据 Transactional data
  • 持久化 Persistence
  • Web
  • 基于 ServletSpring 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 的一些简单的介绍。

你可能感兴趣的:(0. Spring 简介 | Spring 学习笔记)