一.什么是Spring
spring是分层的java SE/EE应用的full-stack的轻量级开源框架,以IOC(Inverse of control:控制反转) 和 AOP(Aspect Oriented Programming: 面向切面编程)为内核,提供了展现层spring MVC和持久层 Spring JDBCTemplate以及业务层事务管理等企业级应用技术,并且能整合第三方框架和类库
二.Spring的发展历程
- 1997年 IBM 提出了EJB的思想
- 1998年 SUN制定开发标准规范EJB1.0
- 1999年 EJB1.0发布
- 2001年 EJB2.0发布
- 2003年 EJB2.1发布
- 2006年 EJB3.0发布
- 为什么要说EJB 呢 因为我认为有了EJB才有的Spring,在2002年Rod Johnson根据多年经验撰写的《Expert o-ne-on-One J2EE Design and Development》阐述了EJB的优点以及开发,2004年Rod Johnson 在《Expert o-ne-on-one J2EE Development without JEB》讲述了EJB的缺点以及解决方案 Spring的雏形也就诞生了,而Rod Johnson 也就是spring 之父
- 2004.03 spring 1.0 发布
- 2006.10 spring 2.0 发布
- 2007.11 更名为 SpringSource,同时发布了 Spring 2.5
- 2009.12 spring 3.0 发布
- 2013.12 Pivotal 宣布发布 Spring 框架 4.0
- 2017.09 Spring 5.0 发布
Spring之父 (Rod Johnson)
三.Spring的优势
- 方便解耦,简化开发 (通过Ioc容器将对象间的依赖关系交给Spring进行控制,避免硬编码造成过度耦合)
- AOP编程支持 (通过Spring 的Aop,方便进行切面编程,后面会出单独出一篇讲解AOP)
- 声明式事务支持
- 简化程序的测试
- 方便集成更多的优秀框架(Struts,Quartz)等
- 降低JavaEE API 的使用难度(如对JDBC进行封装 令使用难度大幅减低 )
- java 源码是经典的学习范例
四 Spring的体系结构
Spring框架至今已集成了20多个模块,这些模块分布在以下模块中:
核心容器(Core Container)
数据访问/集成(Data Access/Integration)层
Web层
AOP(Aspect Oriented Programming)模块
植入(Instrumentation)模块
消息传输(Messaging)
测试(Test)模块
Spring体系结构如下图: