英语原文共 6 页
运用spring mvc框架进行快速的开源J2EE应用程序开发:案例研究
摘要—当今,web应用程序的开发竞争非常激烈,时代要求开发出的应用程序非常准确、经济和高效。人们致力于开发出能提高生产效率和降低复杂性的应用程序,转变程序员开发java2平台企业版的web应用程序的方法已经成为一个基本的运动。本文中我们讨论的重点是怎样开发出j2ee兼容的软件而无需使用企业java bean(EJB)。最好的选择之一就是运用spring框架, spring框架提供了许多服务,但是相比于EJB,它的侵入性大大降低了。这种转变背后的驱动力是web应用程序开发和实施领域提高生产率和降低复杂性的需要。本文中,我们将简要介绍spring的基本体系结构并且给出一个运用了spring mvc框架的案例研究实例。
关键词:mvc,spring,xml
Ⅰ、简介
现今,网络问题是非常复杂的。由于公司和组织的需求都在不断的增加,应用程序开发的复杂性和系统性能是需要解决的主要问题。不同类型的通讯设备的复杂性在不断增加,而业务要求应用程序使用网络和许多通讯设备,并且互联网上数据负载不断的增加,这些迫使我们不得不考虑起应用程序的体系架构问题。现在,让我们讨论在保持应用程序模型视图结构不变的情况下,spring web mvc快速应用程序开发框架是如何快速工作的。
Spring框架具有丰富的功能集,我们将简要讨论这些功能。
1.控制反转:控制反转,即IOC。它是有线服务或者将组件添加到应用程序所使用的技术之一。IOC是“一种软件设计模式和相关的编程技术集”,与传统的交互模式相比,运用IOC后,系统的控制流是反向的。在IOC容器内不是应用程序调用框架而是框架调用应用程序指定的组件。IOC可以被解释为“把运行时所需要的资源或者依赖注入到相关的资源中去”,这也被称为依赖注入。org.springframework.beans.factory.BeanFactory是spring IOC容器的实际表现,它是负责控制和管理bean的。BeanFactory接口是spring IOC容器的主要接口。Bean就是由spring IOC容器实例化和管理的对象。这些bean和他们之间的依赖关系反应在容器所使用的配置元数据中。
2.构造函数依赖注入:我们可以使用java类的构造函数来加载bean的值。首先定义一个只有单一构造函数的类,然后使用details.xml文件提供构造函数所需要的值,最后用一个实现了beanfactory接口方法的类来加载xml文件。这是使用xml文件把值加载到java文件的构造函数中,这种方法适用于向构造函数传递值。
3.Setter依赖注入:给每一个bean定义其get和set方法。我们可以利用set方法在设定bean中的值。Set方法会覆盖掉从bean中加载的值。
4.接口:我们可以在spring中定义接口类。为了实现这一点,必须为java程序导入接口,然后我们可以利用接口中定义的方法来使用spring和xml文件。
5.继承:一个java类可以获得另一个java类的属性,就像只有一个java程序一样。继承有三种子类型:1)抽象型:spring中定义成抽象类的bean只能被继承。2)父子型:定义的的继承层次结构想父子关系一样。3)父- 子 –孙子型:这种类型的继承关系可以定义3个或者更多的类层次结构。
6.自动装配:自动装配用于将xml文件中属性的键和值映射到java文件中去。有4种装配的类型:byName(通过名字)、byType(通过类型)、constructor(通过构造函数)、autodetect(自动检测)。如果没有定义装配的类型,那么默认是以通过名字的方式来装配的。
7.Bean的作用域:spring中定义的所有bean有四种类型的作用域,即session,request,singleton,global-session。这些是用来控制bean的访问范围的。
8.引用bean:在xml文件中的一个bean可以从其他的bean分配值。这尝尝用于从一个bean中读取值然后再分配给另一个bean。
Ⅱ、spring的主要组件
Spring框架依然遵循mvc的思想原则。它是为桌面应用和基于互联网的应用而设计的。Spring由三个相互协作的核心组件组成。1、控制器:处理业务逻辑中的跳转逻辑和同服务层的交互。2、模型:控制器和视图之间的桥梁,包含着控制器给予视图所需要的数据。3、视图:呈现请求后的响应,从模型中提取数据。Spring的核心组件如下所示:
1.DispatcherServlet:它是spring的前端控制器的实现。Web.xml接收请求并且把它转移到DispatcherServlet,DispatcherServlet是与请求进行交互的第一个控制器,它也被称为Servlet的执行。它控制着应用程序的完整流和跳转流。
2.控制器:这个是使用者为了处理请求而创建的组件,它封装了跳转逻辑。控制器将服务委托给服务对象。
3.视图:视图是负责渲染呈现输出的。在输出的结果集、显示设备和通讯设备的基础上,不同类型的输出要选择不同的视图。
4.ModelAndView:ModelAndView是spring框架的核心部分。它实现了应用程序的业务逻辑,由控制器创建。它使视图和请求联系起来并且存储了业务逻辑和模型数据。当一个控制器调用它的时候,它才会执行。在执行时,它将返回视图的数据和名字。
5.ViewResolver:输出是如何显示的取决于从ModelAndView中接收的结果。ViewResolver是将逻辑视图名映射到实际视图的实现。这部分将确定和实现输出的是什么媒体以及如何去显示它。
6.HandlerMapping:它是DispatcherServlet将传入的请求映射到单个控制器时所使用的战略性接口。它识别请求并且调用相应的处理程序来提供服务,处理程序会调用控制器。
Ⅲ、spring的体系结构
Spring框架为开发web应用程序提供了功能全面的mvc模型。Spring具有可插拨的mvc架构,他可以配置多种视图技术,例如:jsp、velocity、tiles、iText等等。Spring mvc分离了控制器,模型对象,分派器和处理对象的角色。对象和控制器的清楚分离,使他们更容易进行定制。图01显示了执行流程。
图01
下面的图02显示了spring模型的序列图。图中dispatcher Servlet是应用程序的入口点,一旦dispatcher Servlet获取请求服务,它就会决定处理程序。所有的处理程序和servlet都是相互映射的。处理程序开始运行和调用相应的控制器,并且将请求的参数传递给控制器,这个时候控制器开始工作,它包含了业务逻辑,同时ModelAndView与控制器关联起来,在执行时,控制器会把ModelAndView返回给dispatcher Servlet,这个时候的ModelAndView包含了数据 和视图名。Dispatcher Servlet从控制器从获得ModelAndView,然后Servlet会调用相应的视图解析器。视图解析器会识别出视图的名称并且通过视图名来提取相应的数据,最后,它会以适当的格式向用户呈现各自的数据。
图02spring框架中应用程序的流程
Ⅳ、spring和xml
Xml广泛使用在spring框架中,它简化了开发流程,节约了时间。Xml用于存储在应用程序执行时所需要的一些数据。
Web.xml文件是应用程序的入口点,它会告诉你进一步的跳转路径。它负责加载应用程序上下文并且指定了负责调度servlet的xml文件名。
web.xml:-
lt;?xml version='1.0' encoding='UTF-8'?gt;
lt;web-app version='1.0' xmlns='http//java.sun.com/xml/ns/javaee'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:schemalLocation='http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app-2_5.xsd'gt;
lt;listenergt;lt;listener-Classgt;
org.springframework.web.context.ContextLoaderListener
lt;/listener-Classgt;lt;/listenergt;
lt;servletgt;
lt;servlet-namegt;dispatcherlt;/servlet-namegt;
lt;servletclassgt;
org.springframework.web.servlet.DispatcherServlet
lt;/servlet-classgt;
lt;load-on-startupgt;1lt;/load-on-startupgt;
lt;/servletgt;
lt;servlet-mappinggt;
lt;servlet-namegt;dispatcherlt;/servlet-namegt;
lt;url-patterngt;/send/*lt;/url-patterngt;
lt;/servlet-mappinggt;
lt;welcome-file-listgt;
lt;welcome-filegt;index.jsplt;/welcome-filegt;
lt;/welcome-file-listgt;
lt;/web-appgt;
以上就是xml文件,xml将与传入到服务器的请求经行交互。xml文件中明确了要调度的servlet的名称,应用程序上下文和index.jsp作为欢迎页面。url的类型定义为*.*,这意味着它将会接受任意类型的传入请求。
ApplicationContext.xml – ApplicationContext建立在BeanFactory之上,它使AOP特征、消息资源处理和事件传播更容易集成在一起。 BeanFactory提供了框架的配置和基本的功能,ApplicationContext则大大提高了应用的性能。当在j2EE的环境下开发应用程序,ApplicationContext是必不可少的。
lt;?xml version='1.0' encoding='UTF-8'?gt;
lt;beans xmlns='http://www.springframework.org/schema/beans'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xmlns:p='http://www.springframework.org/schema/p'
xmlns:aop='http://www.springframework.org/schema/aop'
xmlns:tx='http://www.springframework.org/schema/tx'
xsi:schemaLocation='http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd'gt;
lt;bean id='superClass' class='packagename.SuperClass' /gt;
lt;bean id ='subClass' class=' packagename.SubClass'gt;
lt;/beangt;
lt;property name='superClass' ref='superClass'/gt;
lt;/beansgt;
上述文件将加载superclass.java(超类)的bean和superclass.java本身,同时它还定义了参考类。
Dispatcher-servlet.xml- spring的web
资料编号:[6001]
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。