两个月前跟着b站动力节点王鹤老师的Spring框架教程视频学习完了Spring框架,在学习过程中我将视频中涉及的代码都一行一行手敲了一遍,并且把Spring入门相关的资料整理了一下,在这里记录一下我在Spring框架学习过程中的笔记和一些心得,希望能帮助到想要通过文字教程入门Spring这一框架的小伙伴哦!

视频地址:2020最新Spring框架教程【IDEA版】-Spring框架从入门到精通

文章目录

  • 第一部分 Spring概述
    • 1. 什么是 Spring 框架
    • 2. Spring 的优点
      • 1)轻量
      • 2)面向接口编程,解耦合
      • 3)支持 AOP 编程
      • 4)方便集成各种优秀框架
    • 3. Spring 体系结构

第一部分 Spring概述

1. 什么是 Spring 框架

Spring 是于 2003 年兴起的一个轻量级的 Java 开发框架,它是为了解决企业应用开发的复杂性而创建的。Spring 的核心是控制反转(IoC)面向切面编程(AOP)。Spring 是可以在 Java SE/EE 中使用的轻量级开源框架。

官网: Spring | Home

Spring 的主要作用就是为代码 “解耦”,降低代码间的耦合度。它使得对象和对象(模块和模块)之间的关系不是使用代码来关联,而是通过配置来说明。即在 Spring 中说明对象(模块)的关系。 这减轻了对项目模块之间以及类和类之间的管理难度, 帮助开发人员创建对象,管理对象之间的关系。

Spring 是一个框架,是一个半成品的软件。由 20 个模块组成。它是一个用来管理对象的容器,容器是拿来装东西的,而 Spring 容器不装文本、数字,装的是对象。所以 Spring 是存储对象的容器。 
我们一般说 Spring 框架指的都是 Spring Framework,它是很多模块的集合,使用这些模块可以很方便地协助我们进行开发。这些模块是:核心容器、数据访问/集成、Web、AOP(面向切面编程)、工具、消息和测试模块。比如:Core Container 中的 Core 组件是Spring所有组件的核心,Beans 组件和 Context 组件是实现IOC和依赖注入的基础,AOP组件用来实现面向切面编程。

Spring全家桶:Spring , SpringMVC ,Spring Boot , Spring Cloud

2. Spring 的优点

1)轻量

Spring 框架使用的 jar 文件都比较小,一般在 1M 以下。Spring 核心功能的所需的 jar 文件总共在 3M 左右。Spring 框架运行占用的资源少,运行效率高,而且不依赖其他 jar 文件。

依赖:classA 类中含有 classB 的实例,在 classA 中调用 classB 的方法完成功能,即 classA 对 classB 有依赖。

2)面向接口编程,解耦合

Spring 提供了 IoC 控制反转,由容器管理对象以及对象之间的依赖关系。原来在程序代码中的对象创建方式,现在由容器完成。使得对象之间的依赖解耦合。

3)支持 AOP 编程

通过 Spring 提供的 AOP 功能,方便进行面向切面的编程,许多不容易用传统 OOP 实现的功能可以通过 AOP 在 Spring 中轻松应付,开发人员可以从繁杂的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。

4)方便集成各种优秀框架

Spring 不排斥各种优秀的开源框架,相反 Spring 可以降低各种框架的使用难度,Spring 提供了对各种优秀框架(如 Struts,Hibernate、MyBatis等)的直接支持,简化框架的使用。Spring 像排插一样,其他框架是插头,可以容易地组合到一起。需要使用哪个框架,就把这个插头插入排插,不需要的话可以轻易地移除。

3. Spring 体系结构

下图对应的是 Spring4.x 版本。目前最新的 5.x 版本中 Web 模块的 Portlet 组件已经被废弃掉,同时增加了用于异步响应式处理的 WebFlux 组件。

  • Spring Core :基础,可以说 Spring 其他所有的功能都需要依赖于该类库。主要提供 IoC 依赖注入功能。
  • Spring Aspects :该模块为与 AspectJ 的集成提供支持。
  • Spring AOP :提供了面向切面的编程实现。
  • Spring JDBC : Java 数据库连接。
  • Spring JMS :Java 消息服务。
  • Spring ORM : 用于支持 Hibernate 等ORM工具。
  • Spring Web : 为创建 Web 应用程序提供支持。
  • Spring Test : 提供了对 JUnit 和 TestNG 测试的支持。

更多推荐

【Spring】(1)Spring概述:什么是Spring框架?为什么要用Spring框架?