Spring的基础概述
Spring是什么
Spring 是最受欢迎的企业级 Java 应用程序开发框架,使用 Spring 框架来创建性能好、易于测试、可重用的代码。
Spring 框架是一个开源的 Java 平台,Spring 是轻量级的框架,其基础版本只有 2 MB 左右的大小。
Spring 框架的核心特性是可以用于开发任何 Java 应用程序,但是在 Java EE 平台上构建 web 应用程序是需要扩展的。 Spring 框架的目标是使 J2EE 开发变得更容易使用。
主要特征:
● 轻量:从大小与开销两方面而言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框架是一个分层架构,由很多模块组成,允许应用程序自由选择和组装相应的功能模块,模块图如下
核心容器
核心容器由spring-core,spring-beans,spring-context,spring-context-support和spring-expression(SpEL,Spring表达式语言,Spring Expression Language)等模块组成,它们的细节如下:
数据访问/集成
数据访问/集成层包括 JDBC,ORM,OXM,JMS 和事务处理模块,它们的细节如下:
Web页面
Web 层由 Web,Web-MVC,Web-Socket 和 Web-Portlet 组成,它们的细节如下:
其他模块
还有其他一些重要的模块,像 AOP,Aspects,Instrumentation,Web 和测试模块,它们的细节如下:
Spring家族
Spring发展至今,家族成员已经非常庞大,以下仅列出一些常见的家族项目。
更多家族成员请访问:http://spring.io/projects