Spring是什么
- Spring是一个开源框架,为了解决企业应用开发的复杂性而创建的,但现在已经不止应用于企业应用
- 是一个轻量级的控制反转
(IOC)
和面向切面(AOP)
的容器框架 - 它最初是由
Rod Johnson
编写的,并且2003年6月首次在Apache 2.0许可下发布
Spring官网:http://spring.io/
主要特征
- 轻量:从大小与开销两方面而言Spring都是轻量的
- 非侵入式:Spring应用中的对象不依赖于Spring的特定类
- 控制反转:将对象的使用权交由spring管理,容器在对象初始化时不等对象请求就主动将依赖传递给它,达到松耦合目的
- 面向切面:Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开,例如日志或事务支持
- 容器:Spring包含并管理应用对象的配置和生命周期
- 框架:Spring可以将简单的组件配置、组合成为复杂的应用
非侵入式与侵入式
非侵入式
允许应用系统去自由选择和组装框架的各个模块,并且不强制要求必须实现或者继承框架的类和接口
优点:允许所开发出来的应用系统能够在不用的环境中自由移植,不需要修改应用系统中的核心功能实现的代码
侵入式
使用框架功能强制要求用户代码需要继承框架提供的类或者实现接口
缺点:侵入式让用户代码产生对框架的依赖,这些代码不能在框架外使用,不利于代码的复用
优点:但侵入式可以使用户跟框架更好的结合,更容易更充分的利用框架提供的功能
为什么是Spring
在Spring上开发应用简单
在Spring上开发应用方便
在Spring上开发应用快捷
Spring带来了复杂JavaEE开发的春天
使用优点
适用范围
1.构建企业应用(SpringMVC + Spring + Hibernate/ibatis)
2.单独使用Bean容器(Bean管理)
3.单独使用AOP进行切面处理
4.其他的Spring功能,如:对消息的支持等在互联网中的应用
Spring架构
Spring框架是一个分层架构,由很多模块组成,允许应用程序自由选择和组装相应的功能模块,模块图如下
核心容器
Web层
数据访问/集成
其他模块
Spring家族
Spring发展至今,家族成员已经非常庞大,以下仅列出一些常见的家族项目。
更多家族成员请访问:http://spring.io/projects