1Spring源码学习~Spring 介绍
Posted 戴泽supp
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1Spring源码学习~Spring 介绍相关的知识,希望对你有一定的参考价值。
Spring 介绍
一、前言
Spring 是于 2003 年兴起的一个轻量级 Java 开源框架,由 Rod Johnson 在其著作 Expert One-On-One J2EE Design and Development 中阑述的部分理念和原型衍生而来。Spring 是为了解决企业应用开发的复杂性而创建的,它使用基本的 JavaBean 来完成以前只可能 由 EJB 完成的事情。
二、Spring 整体架构
Spring 框架是一个分层架构,它包含一系列的功能要素,如图所示
1、Core Container
核心容器(Core Container)包含有 Core、Beans、Context 和 Expression Language 模块。
Core 和 Beans 提供 Ioc(控制反转)和 DI(依赖注入)特性。
- 1)、Core 模块主要包含 Spring 框架基本的核心工具类,是其他组件的基本核心和底层依赖
- 2)、Beans 模块是所有应用都要用到的,它包含访问配置文件、创建和管理 bean 以及进行 Inversion of Control / Dependency Injection(Ioc/DI)操作相关的类
- 3)、Context 模块构建于 Core 和 Beans 模块之上,提供了一种类似于 JNDI 注册器的框架式对象访问方法。Context 模块继承了 Beans 的特性,为 Spring 提供了大量扩展(如国际化,事件传播,资源加载等),ApplicationContext 是其中关键
- 4)、Expression Language 模块提供强大的表达式语言,用于运行时查询和操作对象。它是 JSP 2.1 规范中定义的 unified expression language(统一表达语言) 的扩展。该语言支持设置/获取属性的值,属性的分配,方法的调用,访问数组上下文(accessiong the context of arrays),容器和索引器以及从 Spring 的 Ioc 容器中根据名称检索对象等。
2、Data Access / Integration
Data Access / Integration 层包含 JDBC、ORM、OXM、JMS 和 Transaction 模块。
- 1)、JDBC 模块提供了一个 JDBC 抽象层,它可以消除冗长的 JDBC 编码和解析数据库厂商特有的相关代码。它是 Spring 对 JDBC 数据访问的封装。
- 2)、ORM 模块为对象-关系映射 API,如 JPA、JDO、Hibernate、iBatis 等,提供了一个交互层。利用此封装包,可以混合使用 Spring 提供的特性进行 O/R 映射(如声明式事务)
- 3)、OXM 模块提供了一个对 Object/XML 映射实现的抽象层,Object/XML 映射实现包括 JAXB、Castor、XmlBeans、JiBX 和 XStream。
- 4)、JMS(Java Messaging Service)模块主要包含了一些制造和消费消息的特性。
- 5)、Transaction 模块支持变成和声明式事务管理。
3、Web
Web 模块为基于 Web 的应用程序提供了上下文。Web 模块简化了处理大部分请求以及将请求参数绑定到域对象的工作。Web 层包含了 Web、Web-Servlet、Web-Structs 和 Web-portlet模块。
- 1)、 Web 模块提供了面向 Web 的集成特性。如:多文件上传、使用 servlet listeners 初始化 Ioc 容器以及面向 Web 的应用上下文。
- 2)、Web-Servlet 模块包含 Spring 的 model-view-controller(MVC) 实现。
- 3)、Web-Structs 模块提供了对 Structs 的支持。注意,该支持在 Spring 3.0 中已被弃用。
- 4)、Web-portlet 模块提供了用于 Portlet 环境和 Web-servlet 模块的 MVC 的实现
4、AOP
AOP 模块提供了一个符合 AOP 联盟标准的面向切面编程的实现。Spring AOP 模块为基于 Spring 的应用程序,很方便地提供了事务管理服务。
- Aspects 模块提供了对 AspectJ 的集成支持。
- Instrumentation 模块提供了 class Instrumentation 支持和 classloader 实现。
5、Test
Test 模块支持使用 Junit 和 TestNG 对 Spring 组件进行测试。
三、环境搭建
1、获取 Spring 源码
github 上下载源码:https://github.com/spring-projects/spring-framework
idea 导入打开后切换到 5.3.x
分支
以上是关于1Spring源码学习~Spring 介绍的主要内容,如果未能解决你的问题,请参考以下文章