Spring源码深度解析 Spring整体架构和环境搭建总结

在这里插入图片描述
Core Container (核心容器)包含有 Core Beans Context Expression Language 模块
Core Beans 模块是框架的基础部分,提供 IoC (转控制)和依赖注入特性 这里的基础
概念是 BeanFactory ,它提供对 Factory 模式的经典实现来消除对程序’性单例模式的需要,并真
正地允许你从程序逻辑中分离出依赖关系和配置

Core 模决主要包含 Spring 框架基本的核心工具类, Spring 的其他纽件都要用到这个包
里的类, Core 模块是其他纽件的基本核心 当然你也可以在自己的应用系统中使用这
些工具类
Beans 模块是所有应用都妥用到的,它包含访问配直文件、创建和管理 bean 以及进行
Inversion of Control I Dependency Injection ( IoC/DI )操作相关的所有类
Context 模块构建于 Core Beans 模块基础之上,提供了一种类似于JNDI 注册器的框
架式的对象访问方法 Context 模块继承了 Beans 的特性,为 Spring 核心提供了大量
扩展,添加了对国际化(例如资源绑定)、事件传播、资源加载和对 Context 透明创
建的支持 Context 模块同时也支持 J2EE 的一些特性,例如EJB 、JMX和基础的远程
处理 ApplicationContext 接口是 Context 模块的关键
Expression Language 模块提供了强大的表达式语言,用于在运行时查询和操纵对象
它是 JSP 2.1 规范中定义的 unifed expression language 的扩展 该语言支持设直/获取属
性的值,属性的分配,方法的调用,访问数组上下文( accessiong the context of arrays )、
容器和索引器、逻辑和算术运算符、命名变量以及从 Spring的 IoC 容器中根据名称检
索对象 它也支持 list 投影、选择和一般的 list 聚合

Data Access/Integration 层包含JDBC ORM OXM、JMS和 Transaction 模块
JDBC 模块提供了一个 JDBC 抽象层,它可以消除冗长的 JDBC 编码和解析数据库厂
商特有的错误代码 这个模块包含了 Spring对JDBC 数据访问进行封装的所有类
ORM 模块为流行的对象-关系映射 API ,如 JPA JDO Hibernate iBatis 等,提供了
一个交互层 利用 ORM 封装包,可以混合使用所有 Spring 提供的特性进行 O/R 映射,
如前边提到的简单声明性事务管理
Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO
Hibernate iBatisSQL Map 所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构
OXM 模块提供了一个对 ObjecνXML 映射实现的抽象层, Object/XML 映射实现包括
JAXB Castor XMLBeans JiBX XStrearn
JMS ( Java Messaging Service )模块主要包含了 一些制造和消 费消息的特性
Transaction 模块支持编程和声明性的事务管理,这些事务类必须实现特定的接 口,并
且对所有的 POJO 都适用

Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文 所以,
Spring 框架支持与 Jakarta Struts 的集成 Web 模块还简化了处理大部分请求以及将请求参数绑定
域对象的工作 Web 层包含 Web Web-Servlet Web-Struts和Web-Porlet 模块,具体说明如下
Web 模块:提供了基础的面向 Web 的集成特性 例如,多文件上传、使用 servlet listeners
初始化 IoC 容器以及一个面向 Web 的应用上下文 它还包含 Spring 远程支持中 Web
的相关部分
Web-Servlet 模块 web.servlet.jar :该模块包含 Spring model-view-controller ( MVC)
实现 Spring MVC 框架使得模型范围内的代码和 web forms 之间能够清楚地分离开
来,并与 Spring 框架的其他特性集成在一起
Web-Struts 模块:该模块提供了对 Struts 的支持, 使得类在 Spring 应用中能够与一个
典型的 Struts Web 层集成在一起 注意,该支持在 Spring 3.0 中已被弃用
Web-Porlet 模块:提供了用于 Portlet 环境和 Web-Servlet 模块的 MVC 的实现

AOP 模块提供了一个符合 AO 联盟标准的面向切面编程的实现,它让你可以定义例如方
法拦截器和切点,从而将逻辑代码分开,降低它们之间的调合性 利用 source-level 的元数据
功能,还可以将各种行为信息合并到你的代码中,这有点像 .Net 技术中的 attribute 概念
通过配置管理特性, SpringAOP 模块直接将面向切面的编程功能集成到了 Spring 框架中,
所以可以很容易地使 Spring 框架管理的任何对象支持 AOP Spring AOP 模块为基于 Spring
应用程序中的对象提供了事务管理服务 通过使用 SpringAOP ,不用依赖 EJB 组件,就可以将
明性事务管理集成到应用程序中
Aspects 模块提供了对 AspectJ 的集成支持
Instrumentation 模块提供了 class instrumentation 支持和 classloader 实现, 使得可以在特
定的应用服务器上使用

Test 模块支持使用 JUnit TestNG对Spring 组件进行测试

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值