第1节 Spring 简介
Spring
是分层的
full-stack
(全栈) 轻量级(
运行只需要web容器,jar,jvm,不需要第三方软件
)开源框架,以
IoC
和
AOP
为内核,提供了展现层
Spring
MVC
和业务层事务管理等众多的企业级应⽤技术,还能整合开源世界众多著名的第三⽅框架和类库,已
经成为使⽤最多的
Java EE
企业应⽤开源框架。
Spring
官⽅⽹址:
http://spring.io/
我们经常说的
Spring
其实指的是
Spring Framework
(
spring
框架)。
第2节 Spring 发展历程
1997
年
IBM
提出了
EJB
的思想;
1998
年,
SUN
制定开发标准规范
EJB1.0
;
1999
年,
EJB 1.1
发
布;
2001
年,
EJB 2.0
发布;
2003
年,
EJB 2.1
发布;
2006
年,
EJB 3.0
发布;
Rod Johnson
(
spring
之⽗)
Expert One-to-One J2EE Design and Development(2002)
阐述了
J2EE
使⽤
EJB
开发设计的优
点及解决⽅案
Expert One-to-One J2EE Development without EJB(2004)
阐述了
J2EE
开发不使⽤
EJB
的解决
⽅式(
Spring
雏形)
2017
年
9
⽉份发布了
Spring
的最新版本
Spring 5.0
通⽤版(
GA
)
第3节 Spring 的优势
整个
Spring
优势,传达出⼀个信号,
Spring
是⼀个综合性,且有很强的思想性框架,每学习⼀
天,就能体会到它的⼀些优势。
⽅便解耦,简化开发
通过
Spring
提供的
IoC
容器,可以将对象间的依赖关系交由
Spring
进⾏控制,避免硬编码所造成的
过度程序耦合。⽤户也不必再为单例模式类、属性⽂件解析等这些很底层的需求编写代码,可以更
专注于上层的应⽤。
AOP
编程的⽀持
通过
Spring
的
AOP
功能,⽅便进⾏⾯向切⾯的编程,许多不容易⽤传统
OOP
实现的功能可以通过
AOP
轻松应付。
声明式事务的⽀持
@Transactional
可以将我们从单调烦闷的事务管理代码中解脱出来,通过声明式⽅式灵活的进⾏事务的管理,提⾼
开发效率和质量。
⽅便程序的测试
可以⽤⾮容器依赖的编程⽅式进⾏⼏乎所有的测试⼯作,测试不再是昂贵的操作,⽽是随⼿可做的
事情。
⽅便集成各种优秀框架
Spring
可以降低各种框架的使⽤难度,提供了对各种优秀框架(
Struts
、
Hibernate
、
Hessian
、
Quartz
等)的直接⽀持。
降低
JavaEE API
的使⽤难度
Spring
对
JavaEE API
(如
JDBC
、
JavaMail
、远程调⽤等)进⾏了薄薄的封装层,使这些
API
的使⽤
难度⼤为降低。
源码是经典的
Java
学习范例
Spring
的源代码设计精妙、结构清晰、匠⼼独⽤,处处体现着⼤师对
Java
设计模式灵活运⽤以及对
Java
技术的⾼深造诣。它的源代码⽆意是
Java
第4节 Spring 的核⼼结构
Spring
是⼀个分层⾮常清晰并且依赖关系、职责定位⾮常明确的轻量级框架,主要包括⼏个⼤模块:数
据处理模块、
Web
模块、
AOP
(
Aspect Oriented Programming
)
/Aspects
模块、
Core Container
模块
和
Test
模块,如下图所示,
Spring
依靠这些基本模块,实现了⼀个令⼈愉悦的融合了现有解决⽅案的零
侵⼊的轻量级框架
![](https://i-blog.csdnimg.cn/blog_migrate/b6319f9713ccb54692f1c7f73858fa86.png)
1.Spring
核⼼容器(
Core Container
) 容器是
Spring
框架最核⼼的部分,它管理着
Spring
应⽤中
bean
的创建、配置和管理。在该模块中,包括了
Spring bean
⼯⼚,它为
Spring
提供了
DI
的功能。
基于
bean
⼯⼚,我们还会发现有多种
Spring
应⽤上下⽂的实现。所有的
Spring
模块都构建于核⼼
容器之上。
2.⾯向切⾯编程(
AOP
)
/Aspects Spring
对⾯向切⾯编程提供了丰富的⽀持。这个模块是
Spring
应
⽤系统中开发切⾯的基础,与
DI
⼀样,
AOP
可以帮助应⽤对象解耦。
数据访问与集成(
Data Access/Integration
)
3.Spring
的
JDBC
和
DAO
模块封装了⼤量样板代码,这样可以使得数据库代码变得简洁,也可以更专
注于我们的业务,还可以避免数据库资源释放失败⽽引起的问题。 另外,
Spring AOP
为数据访问
提供了事务管理服务,同时
Spring
还对
ORM
进⾏了集成,如
Hibernate
、
MyBatis
等。该模块由
JDBC
、
Transactions
、
ORM
、
OXM
和
JMS
等模块组成。
4.Web
该模块提供了
SpringMVC
框架给
Web
应⽤,还提供了多种构建和其它应⽤交互的远程调⽤⽅
案。
SpringMVC
框架在
Web
层提升了应⽤的松耦合⽔平。
5.Test
为了使得开发者能够很⽅便的进⾏测试,
Spring
提供了测试模块以致⼒于
Spring
应⽤的测
试。 通过该模块,
Spring
为使⽤
Servlet
、
JNDI
等编写单元测试提供了⼀系列的
mock
第5节 Spring 框架版本
Spring Framework不同版本对 Jdk 的要求