认识Spring
- Spring是分层的JavaSE/EE应用的一站式轻量级开源框架,以IOC(Inverse of Control 反转控制)和AOP(Aspect Oritened Programming 面向切面编程)为内核,提供了展现层Spring MVC 和持久层Spring JDBC以及业务层事务管理等众多的企业级应用技术。
- 同时Spring能很方便的兼容第三方的框架和类库
Spring体系架构
Spring 是模块化的,允许你挑选和选择适用于你的模块,不必要把剩余部分也引入。
IOC
Spring核心模块实现了IOC的功能,它将类和类之间的依赖关系从代码中脱离出来,用配置的方式来进行依赖关系的描述。
由IOC容器负责依赖类之间的创建、拼接、管理、获取等工作。
BeanFactory接口是Spring框架的核心接口,它实现了容器许多核心的功能。
Context模块构建于核心模块之上,扩展了BeanFactory的功能,添加了i18n国际化、Bean生命周期控制、框架时间体系、资源加载透明化等多项功能。
此外Context模块还提供了许多企业级服务支持,比如邮件服务、任务调度、JNDI定位、EJB集成、远程访问等。
ApplicationContext是Context模块的核心接口。
表达式语言模块是统一表达式语言(unifiedEL)的一个扩展,主要用于查询和管理运行期的对象,支持设置和获取对象属性,调用对象方法、操作数组、集合等。 使用它可以很方便的通过表达式串和Spring IOC容器进行交互。
AOP
AOP是进行横切逻辑编程的思想。
在AOP模块中,Spring提供了满足AOP Alliance规范的实现,还整合了AspectJ这种AOP语言级的框架。
数据访问和集成
Spring站在DAO的抽象层面,建立了一套面向DAO层统一的异常体系,同时将各种访问数据的检查型异常转换为非检查型类型,为整合各种持久层框架提供基础。
另外,Spring通过模块化技术对各种数据访问进行进行了薄层的橙装,将模式化的代码隐藏起来,使数据访问的程序得到大幅简化。
这样Spirng就建立了和数据形式以及访问技术无关的统一的DAO层,借助AOP技术,Spring提供了声明式事物的功能
web及远程操作
该模块建立在Application Context模块之上,提供了Web应用的各种工具类,如通过Listener或者Servlet初始化Spring容器,将Spring容器注册到Web容器中。
其次,该模块还提供了很多面向Web的功能,比如透明化文件上传、Veloctiy、FreeMarker、XSLT的支持,
Web及远程访问
Spring MVC 。当然也可以整合其他MVC框架