Spring的开篇

来源:互联网 发布:免费瑜伽软件 编辑:程序博客网 时间:2024/06/05 16:07

  Spring 是于2003年兴起的一个轻量级的java开源框架,由Rod Johnson在其著作中<Expert One-On-One J2EE Development and Design>中阐述的部分理念盒原型衍生来的,

Spring是为了解决企业应用开发的复杂性而创立的,它使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发,从简单性,可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。

1.1 Spring的整体架构


       Spring框架是一个分层架构,它包含一系列的功能要素,并被分为大约20个模块,这些模块被总结为以下模块

       (1)Core Container

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

  一 Core模块主要包含Spring框架基本的核心工具类,Spring的其他组件都要使用到这包里面的类,Core模块是其他组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类。

二 Beans模块是所用应用都会用到的,它包含访问其他配置文件,创建和管理bean以及进行Inversion of control/Dependency Injection(Ioc/DI)操作相关的所有类。

三 Context 模块构建于core和beans模块基础之上,提供了一种类似于JNDI注册器的框架的对象访问方法,Context模块继承了Beans的特征,为Spring核心提供了大量扩张,添加了对国际化(例如资源绑定),事件的传播,资源和对Context的透明创建的支持,Context模块同时也支持J2EE的一些特性,例如EJB,JMX和基础的远程处理,ApplicationContext接口是Context模块的关键。

四 Expression Language模块提供了一个强大的表达式语言用于在运行时查询和操作对象,它是JSP2.1规范中定义的unifed expression language的一个扩展,该语言支持设置/获取属性的值,属性的分配,方法的调用,访问数组上下文(accessiong the context of arrays),容器和索引器,逻辑和算术运算符,命名变量以及从Spring的IoC容器中根据名称检索对象,它也支持list投影,选择和一般的list聚合。

 (2)Data Access/Integration

     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模块提供了一个对object/XML映射实现的抽象层,Object/XML映射实现包括JAXB,Castor,XMLBeans,JiBx和XStream。

四 JMS(Java Messageing Service)模块主要包含了一些制造和消费消息的特征。

五 Transaction模块支持编程和声明性的事物管理,这些事物类必须实现特定的接口,并且对所有的POJO都使用。

(3)Web

     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层集成在一起,注意,该支持在Spring3.0中是deprecated的。

四 Web-Porlet模块:提供了用于Porlet环境和Web-Servlet模块的MVC的实现。


0 0
原创粉丝点击