Spring 简介
1. 前言
“Spring 真的那么有用吗?”
大家好,今天我们开始一个新专题 — Spring。
首先 Spring 可谓是大名鼎鼎,如雷贯耳。而关于 Spring 的文章 书籍 教程 更是数不胜数。可以说 Spring 贯穿我们的整个职业生涯,是框架界的常青树。那么我们这个专题专门来聊一聊: 到底 Spring 是什么,它的特点优势是什么,我们项目的开发为什么选择 Spring,它能帮助我们解决哪些问题?
带着疑问,开始我们的专题。
2. 课程进入
2.1 Spring 概述
先搞清楚 Spring 的概念:
官网定义:
Spring 框架为任何类型的部署平台上的基于 Java 的现代企业应用程序提供了全面的编程和配置模型。
Spring 的一个关键元素是在应用程序级别的基础架构支持:Spring 专注于企业应用程序的 “管道”,以便团队可以专注于应用程序级别的业务逻辑,而不必与特定的部署环境建立不必要的联系。
慕课解释:
简单来说:Spring 是一个免费开源框架,为了简化企业级项目开发,提供全面的开发部署解决方案。
疑问导出:
看到这儿,我们明白了一件事:Spring 是帮助我们开发项目的,使用起来很方便。
那么问题来了:Spring 为了简化项目开发到底做了哪些事情?
3. 知识入门
3.1 Spring 核心功能
Spring 到底如何简化我们的项目开发呢?首先,来了解下 Spring 的体系结构。
3.2 Spring 的体系结构介绍
结构图阐释:
- 左上角勾画出负责持久层的部分,是 Spring 对数据持久化,事务管理,支持的功能框架。大家听过的 SpringDataJpa 就是其中的一种;
- 右上角勾画出是负责表现层的部分,是 Spring 对于表现层数据的处理部分的支持,比如:大家听说过的 SpirngMVC 就是其中的一种;
- 最底部的负责测试的部分 是 Spring 对于项目的测试 提供了完整的一个测试环境支持;
- 而中间的两部分 是我们大家常常俗称的 Spring 框架。
疑问导出:
看到这里大家可能会明白一点, Spring 其实是一个 “大家族”。从表现层、业务层、持久层,它都有对应的支持,而我们在框架学习的部分其实主要是使用了它中间的两个部分的核心功能。
那么,Spring 核心功能到底是什么呢?
3.3 Spring 的核心功能
大家对于使用 Spring 框架开发项目已经司空见惯了… 但是对于它的功能或者作用,描述出来总是差点什么,那么现在咱们详细聊一聊它的核心功能。
核心功能:
- 控制反转(IoC): 简单理解 IoC 是一种设计模式,将实例化对象的控制权 由手动的 new 变成了 Spring 框架通过反射机制实例化;
- 依赖注入(DI): 首先理解依赖,程序运行的需要可以称之为依赖。由于 Spring 框架通过反射技术实例化了对象,并将对象的实例存入在容器进行管理。那么如果一个类中的属性为某个其余的类,属性无需手动赋值,通过 spring 的配置文件,或者 Spring 提供的注解,通过 spring 框架可以实现直接注入属性;
- 面向切面编程 (AOP): 何谓切面,切面是数学中的一个概念,表示只有一个点接触到球体的一个平面称呼为切面,而接触点称呼为切点。那么在 Spring 中,切面编程指的就是在程序运行某个方法的时候,不修改原始执行代码逻辑,由程序动态地执行某些额外的功能,对原有的方法做增强,这就叫做面向切面编程,那个被监测的执行方法,称呼为切入点。
知识小结:
Spring 是分层的 Java SE/EE 应用 轻量级开源框架,以 IoC(Inverse of Control:控制反转)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 Spring MVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多 著名的第三方框架和类库, 是使用最多的 Java EE 企业应用开源框架。
使用 Spring 的意义在于:对于 bean 对象的实例管理更加方便,代码编写更加优雅,降低代码的耦合性,提升代码的扩展性。
4. Spring 的优势
Spring 的概念和功能了解以后,下面谈谈它的优势在哪
- Spring 简化项目开发 : Spring 灵活全面的扩展功能,使我们开发项目如鱼得水 。通过 Spring 提供的 IoC 容器,可以将对象间的依赖关系交由 Spring 进行控制,避免硬编码所造成的过度程序耦合。用户也不必再为单例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用;
- Spring 的面向切面编程 :Spirng 框架的 AOP 面向切面编程,极大地提高了程序的扩展性,支持开发人员实现对程序的自定义增强。同时可以方便地使用 Spring 提供的事务管理;
- 面向接口编程: 面向接口编程 降低代码的耦合性,同时也提高了代码的扩展性;
- 测试方便:对于测试的支持 有很多的组件实现;
- 方便集成第三方框架 Spring 可以降低各种框架的使用难度,提供了对各种优秀框架(Struts、Hibernate、Hessian、Quartz 等)的直接支持。
5. 学习基础
- 学习这门课程,首先学会 java 基础语法、面向对象的课程;
- 了解常用的设计模式,比如:工厂模式 单例模式 代理模式;
- 理解反射,并可以应用于实践;
- 可以熟练使用 maven 工具。
6. 小结
本章节主要对于 Spring 框架做了入门介绍,通过本章节的学习,我们应该知道以下几点:
- Spring 框架的概念;
- Spring 框架的意义;
- Spring 框架的体系结构;
- Spring 框架的核心功能;
- Spring 框架的优势;
- Spring 框架学习的一些小要求。