Spring 框架的架包分析功能作用优点
来源:互联网 发布:文艺句子 知乎 编辑:程序博客网 时间:2024/04/29 20:07
关键词: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 框架的架包分析、功能作用、优点
- Spring 框架的架包分析功能作用优点
- Spring MVC 框架的架包分析,功能作用,优点
- Spring框架jar包作用、依赖分析
- Spring框架的优点
- Spring框架的优点
- Spring框架jar包的作用
- spring各个jar包的作用及功能总结
- Spring包的作用
- Spring框架的优点都有什么?
- Spring 框架的优点及缺点
- Spring框架优点
- spring 框架优点
- spring框架的作用
- spring框架-基本jar包作用
- Spring框架之Struts2和Spring的优点
- spring框架的功能
- spring各个包的作用
- 分治思想之快速排序
- 【solr】——配置文件
- c++中的vector
- eclipse快捷键的使用
- XZ压缩最新压缩率之王
- Spring 框架的架包分析功能作用优点
- C++11中的std::function
- C#索引器
- 删除链表中的重复的结点
- Android开发环境搭建、和好用的开发工具
- 【BZOJ 1010】[HNOI2008]玩具装箱toy
- 最大堆的插入和删除
- std:weak_ptr
- 解析XML(PULL)