




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
文档修改记录范文 文档修改记录id姓名日期更改原因备注xmlspy王海巍xx-7-15文档修改记录联系方式email:xmlspytom. qq:15770732(验证:Spring)msn:heaven0hotmail. blog:xmlspy.blogchina. ID姓名xmlspy暗夜里日期xx-7-15更改原因第 2、3章翻译完毕,发布。 备注第一章没有什么内容,所以暂时没有翻译。 将来会加上。 的谋杀关于翻译Spring现在已经开始流行了,但是在国内响应的资料还是很少。 本人使用Spring开发能有1年了,从最初简单使用Spring的DAO到现在的AOP等相关其他功能,深深感到Spring给开发者带来的惊喜和便利。 故此,在从网上下载到Spring Live的英文原版后,下决心要把它翻译出来。 由于本人的英文水平缺失比较烂,某些地方会失去作者的原意,希望大家在发现相关的问题及时联系我,或者你可以直接在本翻译文档中更改。 第一章没什么内容,我没有翻译,网上有相关的翻译,请大家自行查找。 现在已经翻译到第三章,余下的章节将会在将来发布,具体什么时间我也无法确定,请大家关注我的blog。 我的联系方式email xmlspytom. QQ:15770732(验证Spring)MSN:heaven0hotmail. blog:xmlspy.blogchina.如何修改本文档如果您发现本翻译文档有什么不妥当的地方,请您更改,但记得一定要在上面的“文档修改记录”表中添加响应的记录。 下面解释一下这个表各个字段的意义?ID你的昵称,最好只是英文字母和数字,并且唯一。 姓名你的真是姓名,如果不想添或者添假名也无所谓联系方式任何联系方式都可以,只要能找到你。 日期添加记录的时间。 更改原因你为什么修改,或你添加了那些东东。 备注其他的一些补充内容。 在第四章,我们将使用Spring MVC框架来重构这个application。 本章涵盖以下的主题编写验证功能的测试。 ?配置Hibernate和事务(Transaction)。 ?加载Spring的applicationContext.xml文件。 ?设置业务代理(business delegates)和DAO之间的依赖关系。 ?配置(wiring)Spring到Struts应用中。 ?2.1.概述你将创建一个基于CRUD(Create、Retrieve、Update和Delete)的用户管理的简单应用程序。 这个应用程序名字叫做MyUsers,是本书的示例应用程序。 它是个三层的webapp,带有调用业务代理的Action,而这个业务代理调用DAO。 下图显示MyUsers应用程序的工作流程。 图中的数字表示流程的顺序从web(UserAction)到中间层(UserManager),再到数据层(UserDAO),然后返回。 图2.1MyUsers应用程序流程这个应用程序使用Struts作为MVC框架,因为大多数读者都熟悉Struts。 而Spring的真正强大之处在于它的声明性事务(declarative transaction)、依赖绑定(dependency binding)和持久化(persistence)的支持(例如,Hibernate和iBATIS)。 第四章我们将使用Spring的MVC框架重构这个应用程序。 下面是你将要做的步骤1.下载Struts和Spring。 2.创建项目目录和Ant的build文件。 3.为持久层创建单元测试。 4.配置Hibernate和Spring。 5.用Hibernate实现UserDAO。 6.运行单元测试,用DAO检验CRUD。 7.创建Manager并声明事务。 8.为Struts Action创建单元测试。 9.为web层创建一个Action和model(DynaActionForm)。 10.运行单元测试,用Action检验CRUD。 11.完善JSP,通过Web浏览器进行CRUD操作。 12.通过Web浏览器检验JSP的功能。 13.用Velocity模板替换JSP页。 14.使用Commons Validator添加验证。 2.2.下载Struts和Spring1.下载并且安装下面的组件?JDK1.4.2(或者更高的版本)?Tomcat5.0+?Ant1.6.1+设置环境变量?JAVA_HOME?ANT_HOME?CATALINA_HOME在你的PATH环境变量中添加以下条目?JAVA_HOME/bin?ANT_HOME/bin?CATALINA_HOME/bin开发一个基于java的web应用程序,开发者需要下载JAR,创建目录结构和Ant的build文件。 对于只使用Struts的应用程序,可以使用随标准Struts一起发布的struts-blank.war来作为这个应用程序的起点;对于使用Spring的MVC框架,使用与Spring一起发布的示例程序webapp-minimal。 但是这示例应用程序既没有简单化Struts-Spring集成也没有顾及unit测试。 因此,Therefore,I havemade availableto myreaders Equinox。 Equinox是用最少代码创建的的一个StrutsSpring Web应用程序。 (Equinox isa bare-bones starterapplication forcreating aStruts-Spring webapplication。 )它有一个预定义的目2.3.录结构,一个Ant build文件(用于编译、部署和测试),和所有你将用到的JAR文件。 Equinox中所带的大量的目录结构和build文件是从我的开源程序AppFuse带来的。 Therefore,Equinox isreally justan“AppFuse Light”that allowsrapid webappdevelopment withminimal setup。 因为它是从AppFuse中派生出来的,你将在包名、数据库名和其他地方看到许多对它的引用。 因此你可以从基于Equinox的应用程序迁移到更健壮的基于AppFuse的应用程序。 2.3.创建项目目录和Ant的build文件设置你的初始目录结构和Ant build文件,下载Equinox并且解压缩到你的硬盘上。 我建议把项目目录建在C:Source(Windows)和/dev(Unix或Linux)。 对于Windows用户,设置环境变量HOME为c:Source。 最简单的方法是解压缩Equinox到你所指定的“source”位置,定位(cd)到equinox目录位置,然后从命令行运行ant new-D=myusers。 注意我在windows上使用Cygwin(.cygwin),它允许我键入右斜杠,比如Unix/Linux。 因此,这本书的所有路径都使用右斜杠。 请根据你的环境进行更改因此,MyUsers webapp就会有下面的目录结构图2.2MyUsers应用程序目录结构Equinox包含一个简单但强大的build.xml文件,可以通过使用Ant来部署、编译和测试。 如果想要查看所有可用的ant targets,在MySUsers目录下键入“ant”,将返回类似下面的文字echoequinox buildfileecho-echoAvailable targetsare:echopile-Compile allJava filesechot est-Runs JUnittestsechotest-web-Runs jWebUnit tests ina runningcontainerechotest-tomcat-Starts Tomcatto runjWebUnit testsechotest-all-Runs allJUnit andjWebUnittestsechowar-Package asWAR fileechodeploy-Deploy applicationas directoryechodeploywar-Deploy applicationas aWAR fileechoi nstall-Install applicationin Tomcatechor emove-Remove applicationfrom Tomcatechor eload-Reload applicationin Tomcatechos tart-Start Tomcatapplicationechos top-Stop Tomcatapplicationechol ist-List Tomcatapplicationsechoc lean-Deletes piledclasses andWARechonew-Creates anew projectEquinox支持Tomcat的Ant任务。 这些任务已经集成到Equinox中,但是给你演示一下他们是怎么集成的会帮助你更好地理解他们是怎么工作的。 2.3.1.Tomcat和Ant Tomcat中有几个Ant任务,允许你通过使用它的Manager应用程序来install、remove、和reload webapp。 声明和使用这些任务的最简单的方法是创建一个包含所有定义的properties文件。 在Equinox中的基本目录中,有一个tomcatTperties文件,这个文件里有下面的内容deploy=org.apache.catalina.ant.DeployTask undeploy=org.apache.catalina.ant.UndeployTask remove=org.apache.catalina.ant.RemoveTask reload=org.apache.catalina.ant.ReloadTask start=org.apache.catalina.ant.StartTask stop=org.apache.catalina.ant.StopTask list=org.apache.catalina.ant.ListTask在build.xml文件中有许多target用于安装、删除、和重加载这个应用程序在上面所列出的target中,有几个$tomcat.*变量需要定义。 这个几个变量在基本目录得perties文件中。 默认情况下,它们象下面这样定义#Properties forTomcat Servertomcat.manager.url=localhost:8080/manager tomcat.manager.username=admin tomcat.manager.password=admin确定admin用户能访问Manager应用程序,打开$CATALINA_HOME/conf/tomcat-users.xml,然后检查下面的几行是否存在。 如果不存在你必须创建它。 注意“roles”属性(attribute)可以包含一个以逗号分隔的role列表(list ofroles)。 若要测试这些更改,保存所有的文件并且启动Tomcat。 然后从命令行定位到“myusers”目录,运行“ant list”。 你将会看到Tomcat服务器中当前正在运行的应用程序。 图2.3ant list命令结果现在你能通过ant deploy安装MyUsers。 打开你的浏览器输入localhost:8080/myusers。 之后就会显示象下面的“Wele toEquinox”图像了图2.4Equinox欢迎页面警告为了使HSQLDB能与MyUsers正确工作,Tomcat fromthe samedirectory fromwhich yourun Ant.键入”$CATALINA_HOME/bin/startup.sh”“%CATALINA_HOME%binstartup.bat”(Windows)。 你也可以更改数据库的设置为绝对路(Unix/Linux)或径。 在下一部分中,你将开发一个User对象和一个持久化这个对象的Hibernate DAO。 你将使用Spring去管理这个DAO和他们之间的依赖关系。 最后,你将写一个业务代理(business delegate)来使用AOP和声明性事务(declarative transactions)。 2.4.为持久层创建单元测试在MyUsers应用程序中,你将为你的持久层使用Hibernate。 Hibernate是一个把数据库表和Java对象关联起来的对象/关系(Object/Relational(O/R))框架。 它允许你非常容易地在这些对象上执行CRUD(Create、Retrieve、Update、Delete)。 而Spring与Hibernate在一起做这些工作甚至更容易。 把Hibernate程序切换到SpringHibernate会减少75的代码。 减少的代码其实都被抽象到ServiceLocator类和几个DAOFactory类中了,并且使用Spring的运行时(runtime)异常代替了Hibernate的已检查(checked)异常。 写单元测试会帮助你阐明你的UserDAO接口。 要为你的UserDAO创建Junit测试,请完成下面的步骤1.在test/org/appfuse/dao目录中创建一个UserDAOTest.java类。 这个类扩展这个包中的BaseDAOTestCase。 这个父类从web/WEB-INF/applicationContext.xml文件初始化Spring的ApplicationContext。 下面是一个迷你JUnit测试的代码package org.appfuse.dao;/use yourIDE tohandle importspublic classUserDAOTest extendsBaseDAOTestCaseprivate User user=null;private UserDAOdao=null;protected voidsetUp()throws Exceptionlog=LogFactory.getLog(UserDAOTest.class);dao=(UserDAO)ctx.getBean(userDAO);protected voidtearDown()throws Exceptiondao=null;public staticvoid main(Stringargs)junit.textui.TestRunner.run(UserDAOTest.class);这个类仍然不能编译,因为你没有创建UserDAO接口。 在你做这些之前,写几个测试并在User对象上检验CRUD。 2.添加testSaveUser和testAddAndRemove方法到UserDAOTest中,如下所示public voidtestSaveUser()throws Exceptionuser=new User();user.setFirstName(Rod);user.setLastName(Johnson);dao.saveUser(user);assertTrue(primary keyassigned,user.getId()!=null);(user);assertTrue(user.getFirstName()!=null);public voidtestAddAndRemoveUser()throws Exceptionuser=new User();user.setFirstName(Bill);user.setLastName(Joy);dao.saveUser(user);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年安全生产安全产品面试题
- 2025年工程安全考试复习题及答案指南
- 2025年金融风险分析师职业资格考试试题及答案解析
- 2025年健身教练专业认证考核试卷及答案解析
- 2025年健康食品营养师职业资格评价试题及答案解析
- 2025年建筑土木勘察师认证考试试题及答案解析
- 2025年计算机网络工程师专业能力考试试题及答案解析
- 2025年化学分析师专业知识鉴定试题及答案解析
- 2025年国际贸易实务考试试题及答案解析
- 2025年广告营销策划师资格认证考试试题及答案解析
- 单片机的看门狗
- 市场营销(第2版)课件全套 王永贵 第1-17章-市场与市场营销概述及发展-顾客营销学
- 高中数学 人教A版 必修一 《集合与常用逻辑用语》 1.1集合的概念
- 深圳某电厂锅炉维修改造施工组织设计-new(常用版)
- GB/T 4950-2021锌合金牺牲阳极
- GB/T 15171-1994软包装件密封性能试验方法
- 中药调剂技术-课件
- 证券从业考试基础模拟卷二(题目+解析)
- 水轮发电机讲义课件
- 信息系统运维服务方案
- 化工试生产总结报告
评论
0/150
提交评论