0. Spring 简介 | Spring 学习笔记

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

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

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

Spring 的意思

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

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 的一些简单的介绍。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,267评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,224评论 6 342
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,099评论 25 709
  • 下面的知识点呢,是自己第一次做这个效果,记录下知识,不知道有没有更好的实现方法。文章二------改进版在Andr...
    centerzx阅读 13,747评论 16 107
  • 我叫胡一,胡言乱语的胡,一败涂地的一,没什么特别的。 我爸是个军人,牺牲于一场无意义的战争中,打娘胎里出来,我就没...
    荞二熊阅读 1,778评论 2 2

友情链接更多精彩内容