Spring 框架的架包分析功能作用优点

来源:互联网 发布:文艺句子 知乎 编辑:程序博客网 时间:2024/04/29 20:07
"Spring 框架的架包分析功能作用优点":

关键词:spring 框架   分析 功能 作用 优点


由于刚搭建完一个mvc框架,决定分享一下我搭建过程中学习到的一些东西。我觉得不管你是个初级程序员还是高级程序员抑或是软件架构师,在学习和了解一个框架的时候,首先都应该知道的是这个框架的原理和与其有关jar的作用、关系。这篇文章总结一下spring框架的相关知识。


一、spirng的简介高手可以跳过

spring是一个开源框架,它由rod johnson创建。它是为了解决企业应用开发的复杂性而创建的。spring使用基本的javabean来完成以前只可能由ejb完成的事情。然而,spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何java应用都可以从spring中受益。

二、spring的工作原理(mvc)

       1.springmvc请所有的请求都提交给dispatcherservlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。 

  2.dispatcherservlet查询一个或多个handlermapping,找到处理请求的controller. 
  3.dispatcherservlet请请求提交到目标controller 
  4.controller进行业务逻辑处理后,会返回一个modelandview 
  5.dispathcher查询一个或多个viewresolver视图解析器,找到modelandview对象指定的视图对象 
  6.视图对象负责渲染返回给客户端。

三、spring的作用

        aop 让开发人员可以创建非行为性的关注点,称为横切关注点,并将它们插入到应用程序代码中。使用 aop后,公共服务(比如日志、持久性、事务等)就可以分解成方面并应用到域对象上,同时不会增加域对象的对象模型的复杂性。 

  ioc 允许创建一个可以构造对象的应用环境,然后向这些对象传递它们的协作对象。正如单词 倒置 所表明的,ioc 就像反过来的jndi。没有使用一堆抽象工厂、服务定位器、单元素(singleton)和直接构造(straightconstruction),每一个对象都是用其协作对象构造的。因此是由容器管理协作对象(collaborator)。 
  spring即使一个aop框架,也是一ioc容器。 spring 最好的地方是它有助于您替换对象。有了spring,只要用javabean属性和配置文件加入依赖性(协作对象)。然后可以很容易地在需要时替换具有类似接口的协作对象。 
  spring 框架是一个分层架构,由 7 个定义良好的模块组成。spring模块构建在核心容器之上,核

此文来自: 马开东博客 转载请注明出处 网址: http://www.makaidong.com

心容器定义了创建、配置和管理bean 的方式,如图 1 所示。 
  组成 spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下: 
  核心容器:核心容器提供 spring框架的基本功能。核心容器的主要组件是beanfactory,它是工厂模式的实现。beanfactory使用控制反转(ioc)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。 
  spring 上下文:spring 上下文是一个配置文件,向 spring框架提供上下文信息。spring上下文包括企业服务,例如 jndi、ejb、电子邮件、国际化、校验和调度功能。 
  spring aop:通过配置管理特性,spring aop 模块直接将面向方面的编程功能集成到了spring框架中。所以,可以很容易地使 spring 框架管理的任何对象支持 aop。spring aop 模块为基于spring的应用程序中的对象提供了事务管理服务。通过使用 spring aop,不用依赖ejb组件,就可以将声明性事务管理集成到应用程序中。 
  spring  dao:jdbcdao抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。springdao的面向 jdbc 的异常遵从通用的 dao 异常层次结构。 
  spring orm:spring 框架插入了若干个 orm 框架,从而提供了 orm的对象关系工具,其中包括jdo、hibernate 和 ibatis sql map。所有这些都遵从 spring 的通用事务和dao异常层次结构。 
  spring web 模块:web 上下文模块建立在应用程序上下文模块之上,为基于web的应用程序提供了上下文。所以,spring 框架支持与 jakarta struts的集成。web模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。 
  spring mvc 框架:mvc 框架是一个全功能的构建 web 应用程序的 mvc实现。通过策略接口,mvc框架变成为高度可配置的,mvc 容纳了大量视图技术,其中包括jsp、velocity、tiles、itext 和 poi。 
  spring 框架的功能可以用在任何 j2ee服务器中,大多数功能也适用于不受管理的环境。spring的核心要点是:支持不绑定到特定 j2ee服务的可重用业务和数据访问

此文来自: 马开东博客 转载请注明出处 网址: http://www.makaidong.com

对象。毫无疑问,这样的对象可以在不同 j2ee 环境 (web或ejb)、独立应用程序、测试环境之间重用。

四、spring架包目录说明

      aspectj目录下是在spring框架下使用aspectj的源代码和测试程序文件。 

     aspectj是java最早的提供aop的应用框架。 
     dist 目录下是spring 的发布包,关于发布包下面会详细进行说明。 
     docs 目录下是相关的文档,包括有spring api 的javadoc、reference 参考指南、spring的标签库使用
 件及           spring mvc 的mvc-step-by-step 讲解与示例。都是很好的文档,值得好好研究一下。 

   lib 目录下是spring 所依赖的第三方开源包。 

     mock 目录下是spring 辅助应用测试的mock 源程序。 
     samples 目录下是spring 的示例源程序及简单的webapp 示例框架的示例配置,值得好好学习的有jpetstore 及petclinic,当然其它的countries、imagedb、tiles-example 也可以好好参考一下。 

     src 目录下是spring 的源程序。 
     test 目录下spring 的单元测试源程序。 
     tiger 目录下是针对在spring框架中使用java 1.5的源程序及测试程序。tiger是jdk 1.5版本的开发代号。 

五、spring架包工作作用详解

       spring.jar 是包含有完整发布模块的单个jar 包。但是不包括mock.jar, aspects.jar, spring-portlet.jar, and              spring-hibernate2.jar。 

     spring-src.zip就是所有的源代码压缩包。 
     除了spring.jar 文件,spring 还包括有其它21 个独立的jar 包,各自包含着对应的spring组件,用户可以根据自己的需要来选择组合自己的jar 包,而不必引入整个spring.jar 的所有类文件。 
    spring-core.jar(必须) 
     这个jar 文件包含spring 框架基本的核心工具类。spring 其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类。 
外部依赖commons logging, (log4j)。 
spring-beans.jar(必须) 
这 个jar 文件是所有应用都要用到的,它包含访问配置文件、创建和管理bean 以及进行inversion of control / dependency injection(ioc/di)操作相关的所有类。如果应用只需基本的ioc/di 支持,引入spring-core.jar 及spring-beans.jar 文件就可以了。 
外部依赖spring-core,(cglib)。 

spring-aop.jar(必须) 
这个jar 文件包含在应用中使用spring 的aop 特性时所需的类和源码级元数据支持。使用基于aop 的spring特性,如声明型事务管理(declarative transaction management),也要在应用里包含这个jar包。 
外部依赖spring-core, (spring-beans,aop alliance, cglib,commons attributes)。 

spring-context.jar(必须) 
这个jar 文件为spring 核心提供了大量扩展。可以找到使用spring applicationcontext特性时所需的全部类,jdni 所需的全部类,instrumentation组件以及校验validation 方面的相关类。 
外部依赖spring-beans, (spring-aop)。 

spring-dao.jar(必须) 
这个jar 文件包含spring dao、spring transaction 进行数据访问的所有类。为了使用声明型事务支持,还需在自己的应用里包含spring-aop.jar。 
外部依赖spring-core,(spring-aop, spring-context, jta api)。 

spring-jdbc.jar(必须) 
这个jar 文件包含对spring 对jdbc 数据访问进行封装的所有类。 
外部依赖spring-beans,spring-dao。 

spring-support.jar(必须) 
这个jar 文件包含支持ui模版(velocity,freemarker,jasperreports),邮件服务,脚本服务(jruby),缓存cache(ehcache),任务计划scheduling(uartz)方面的类。 
外部依赖spring-context, (spring-jdbc, velocity, freemarker, jasperreports, bsh, groovy, jruby, quartz, ehcache) 

spring-web.jar(必须) 
这个jar 文件包含web 应用开发时,用到spring 框架时所需的核心类,包括自动载入web application context 特性的类、struts 与jsf 集成类、文件上传的支持类、filter 类和大量工具辅助类。 
外部依赖spring-context, servlet api, (jsp api, jstl, commons fileupload, cos)。 

spring-webmvc.jar 
这个jar 文件包含spring mvc 框架相关的所有类。包括框架的servlets,web mvc框架,控制器和视图支持。当然,如果你的应用使用了独立的mvc 框架,则无需这个jar 文件里的任何类。 
外部依赖spring-web, (spring-support,tiles,itext,poi)。 

spring-portlet.jar 
spring自己实现的一个类似spring mvc的框架。包括一个mvc框架和控制器。 
外部依赖spring-web, portlet api,(spring-webmvc)。 

spring-struts.jar 
struts框架支持,可以更方便更容易的集成struts框架。 
外部依赖spring-web,struts。 

spring-remoting.jar 
这个jar 文件包含支持ejb、远程调用remoting(rmi、hessian、burlap、http invoker、jax-rpc)方面的类。 
外部依赖spring-aop, (spring-context,spring-web,hessian,burlap,jax-rpc,ejb api)。 

spring-jmx.jar 
这个jar包提供了对jmx 1.0/1.2的支持类。 
外部依赖spring-beans,spring-aop, jmx api。 

spring-jms.jar 
这个jar包提供了对jms 1.0.2/1.1的支持类。 
外部依赖spring-beans,spring-dao,jms api。 

spring-jca.jar 
对jca 1.0的支持。 
外部依赖spring-beans,spring-dao, jca api。 

spring-jdo.jar 
对jdo 1.0/2.0的支持。 
外部依赖spring-jdbc, jdo api, (spring-web)。 

spring-jpa.jar 
对jpa 1.0的支持。 
外部依赖spring-jdbc, jpa api, (spring-web)。 

spring-hibernate2.jar 
对hibernate 2.1的支持,已经不建议使用。 
外部依赖spring-jdbc,hibernate2,(spring-web)。 

spring-hibernate3.jar 
对hibernate 3.0/3.1/3.2的支持。 
外部依赖spring-jdbc,hibernate3,(spring-web)。 

spring-toplink.jar 
对toplink框架的支持。 
外部依赖spring-jdbc,toplink。 

spring-ibatis.jar 
对ibatis sql maps的支持。 
外部依赖spring-jdbc,ibatis sql maps。 

另外的两个包。 

spring-mock.jar 
这 个jar 文件包含spring 一整套mock 类来辅助应用的测试。spring 测试套件使用了其中大量mock 类,这样测试就更加简单。模拟httpservletrequest 和httpservletresponse 类在web 应用单元测试是很方便的。并且提供了对junit的支持。 
外部依赖spring-core。 

spring-aspects.jar 
提供对aspectj的支持,以便可以方便的将面向方面的功能集成进ide中,比如eclipse ajdt。 
外部依赖。 

weaver jars (dist/weavers)说明。 

spring-agent.jar 
spring的instrumentationsavingagent (为instrumentationloadtimeweaver),一个设备代理包,可以参考jdk1.5的instrumentatio

搜索此文相关文章:Spring 框架的架包分析功能作用优点
此文链接:http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E9%97%AE%E7%AD%94/7170.shtm
0 0
原创粉丝点击