Spring是什么

Spring 是 Java EE 编程领域的一款轻量级的开源框架,由被称为“Spring 之父”的 Rod Johnson 于 2002 年提出并创立,它的目标就是要简化 Java 企业级应用程序的开发难度和周期。

Spring 自诞生以来备受青睐,一直被广大开发人员作为 Java 企业级应用程序开发的首选。时至今日,Spring 俨然成为了 Java EE 代名词,成为了构建 Java EE 应用的事实标准。

Spring的组成

spring从广义角度来讲,它包含了以spring框架为核心的一整个技术栈。下面列举一些,我们必须掌握的,企业级开发中最为常用的项目:

项目名称

描述

Spring Framework

spring基本框架,核心是ioc和aop

Spring Boot

为了简化spring开发过程中的大量的配置,Pivotal 团队在 Spring 基础上提供了一套全新的开源的框架,它就是 Spring Boot

Spring Data

Spring 提供的数据访问模块,对 JDBC 和 ORM 提供了很好的支持。通过它,开发人员可以使用一种相对统一的方式,来访问位于不同类型数据库中的数据。

Spring Cloud

一款基于 Spring Boot 实现的微服务框架。它并不是某一门技术,而是一系列微服务解决方案或框架的有序集合。它将市面上成熟的、经过验证的微服务框架整合起来,并通过 Spring Boot 的思想进行再封装,屏蔽调其中复杂的配置和实现原理,最终为开发人员提供了一套简单易懂、易部署和易维护的分布式系统开发工具包。

Spring Security

前身为 Acegi,是 Spring 中较成熟的子模块之一。它是一款可以定制化的身份验证和访问控制框架。

平时我们看一些视频教程或者文章博客,都在讲想学习SpringBoot,要先学SpringMvc,要学SpringMvc要先学Spring,这里说的Spring就指的是Spring Framework。它是整个Spring技术栈的基础,如果我们不去学习研究SpringFramework,直接就去看SpringBoot,那最终可能只会机械化的使用,对于背后的原理毫无所知。所以,我们的学习先从SpringFramework开始。

Spring Framework的特点

Spring 框架具有以下几个特点。

方便解耦,简化开发

Spring 就是一个大工厂,可以将所有对象的创建和依赖关系的维护交给 Spring 管理。

方便集成各种优秀框架

Spring 不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如 Struts2、Hibernate、MyBatis 等)的直接支持。

降低 Java EE API 的使用难度

Spring 对 Java EE 开发中非常难用的一些 API(JDBC、JavaMail、远程调用等)都提供了封装,使这些 API 应用的难度大大降低。

方便程序的测试

Spring 支持 JUnit4,可以通过注解方便地测试 Spring 程序。

AOP 编程的支持

Spring 提供面向切面编程,可以方便地实现对程序进行权限拦截和运行监控等功能。

声明式事务的支持

只需要通过配置就可以完成对事务的管理,而无须手动编程。

Spring Framework的两大核心

核心

描述

IOC

Inverse of Control 的简写,译为“控制反转”,指把创建对象过程交给 Spring 进行管理。

AOP

Aspect Oriented Programming 的简写,译为“面向切面编程”。AOP 用来封装多个类的公共行为,将那些与业务无关,却为业务模块所共同调用的逻辑封装起来,减少系统的重复代码,降低模块间的耦合度。另外,AOP 还解决一些系统层面上的问题,比如日志、事务、权限等

上面就是Spring框架的两大核心,它贯穿了整个Spring,常有人说掌握了这两大核心,你就算完全学会了Spring,足以见其重要性,它们是我们必须掌握的内容!