Spring 快速入门教程
──开发你的第一个Spring程序
翻译整理:Hantsy Bai<hantsy@tom>
本章学习用struts MVC框架作前端,Spring做中间层,Hibernate作后端来开发一个简单的Spring应用程序。在第4章将使用Spring MVC框架对它进行重构。
本章包含以下内容:
编写功能性测试。
配置Hibernate和Transaction。
载入Spring的l文件。
设置业务代理(business delegates)和DAO的依赖性。
把spring写入Struts 程序。
概述
你将会创建一个简单的程序完成最基本的CRUD(Create, Retrieve, Update和 Delete)操作。这个程序叫MyUsers,作为本书的样例。这是一个3层架构的web程序,通过一个Action 来调用业务代理,再通过它来回调 DAO类。下面的流程图表示了MyUsers是如何工作的。数字表明了流程的先后顺序,从web层(UserAction)到中间层(UserManager),再到数据层(UserDAO),然后返回。
鉴于大多数读者都比较熟悉struts,本程序采用它作为MVC 框架。Spring的魅力在于它宣称式的事务处理,依懒性的绑定和持久性的支持。第4 章中将用 Spring框架对它进行重构。
接下来你会进行以下几个步骤:
1.下载Struts和Spring。
2.创建项目目录和ant Build文件。
3.为持久层创建一个单元测试(unit tests)。
4.配置Hibernate和Spring。
5.编写HIbernate DAO的实现。
6.进行单元测试,通过DAO验证CRUD。
7.创建一个Manager来声明事务处理。
8.为struts Action 编写测试程序。
9.为web层创建一个Action 和model(DynaActionForm)。
spring framework runtime10.进行单元测试,通过Action验证CRUD。
11.创建JSP页面,以通过浏览器来进行CRUD操作。
12.通过浏览器来验证JSP页面的功能。
13.用velocity模板替换JSP页面。
14.使用Commons Validator添加验证。
下载Struts和Spring
1.下载安装以下组件:
•JDK1.4.2(或以上)
•Tomcat5.0+
•Ant 1.6.1+
2.设置以下环境变量:
•JAVA_HOME
•ANT_HOME
•CATALINA_HOME
3.把以下路径添加到PATH中:
•JAVA_HOME/bin
•ANT_HOME/bin
•CATALINA_HOME/bin
为了开发基于java的web项目,开发人员必须事先下载必需的jars,建好开发目录结
构和ant build文件。对于单一的struts项目,可以利用struts中现成的struts-
blank.war。对于基于Spring MVC 框架的项目,可以用Spring中的webapp-minimal.war。这只为开发作准备,两者都没有进行struts-spring集成,也没有考虑单元测试。为此,我们为读者准备了E q uinox。
E q uinox为开发Struts-spring式的程序提供一个基本框架。它已经定义好了目录结构,和ant build文件(针对compiling,deploying,testing),并且提供了struts, spring, Hibernate开发要用到的jars文件。E q uinox中大部分目录结构和ant build文件来自我的开源项目──AppFuse。可以说,E q uinox是一个简化
的AppFuse,它在最小配置情况下,为快速web开发提供了便利。由于E q uinox源于AppFuse,所以在包名,数据库名,及其它地方都到它的影子。这是为让你从基于E q uinox的程序过渡到更为复杂的AppFuse。
从sourcebeat/downloads上下载E q uinox,解压到一个合适的位置,开始准备MyUsers的开发。
创建项目目录和ant build文件
为了设置初始的目录结构,把下载的E q uinox解压到硬盘。建议windows用户把项目放在C:\Source,Unix/Linux用户放在~/dev(译注:在当前用户目录建一个dev目录)中。windows用户可以设置一个HOME环境变量,值为C:\Source。最简单的方法是把E q uinox解压到你的喜欢的地方,进入e q uinox目录,运行ant new -Dapp.anme=myusers。
tips:在windows使用)就可以像Unix/Linux系统一样使用正斜杠,本书所有路径均采用正斜杠。其它使用反斜杠系统(如windows中命令行窗口)的用户请作相应的调整。
现在MyUsers程序已经有如下的目录结构:
E q uinox包含一个简单而功能强大的l,它可以用ant来进行编译,布署,和测试。ant中已经定义好targets,在e q uinox运行ant,将看到如下内容:
[echo] Available targets are:
[echo] compile --> Compile all Java f iles
[echo] war --> Package as W AR f ile
[echo] deploy --> Deploy application as directory
[echo] deploywar --> Deploy application as a W AR f ile
[echo] install --> Install application in Tomcat
[echo] remove --> Remove application f rom Tomcat
[echo] reload --> Reload application in Tomcat
[echo] start --> Start Tomcat application
[echo] stop --> Stop Tomcat application
[echo] list --> List Tomcat applications
[echo] clean --> Deletes compiled classes and W AR
[echo] new --> Creates a new project
E q uinox支持tomcat的ant tasks(任务)。这些已经集成在E q uinox中,解讲一下如何进行集成的有助于理解它们的工作原理。
Tomcat和ant
tomcat中定义了一组任务,可以通过Manager来安装(install),删除(remove),重载(reload)webapps。要使用这些任务,可以把所有的定义写在一个属性文件中。在E q inox的根目录下,有一个名为tomcatTasks.properties包含如下内容。
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
在l定义一些任务来安装,删除,重新载入应用程序。
<!-- Tomcat Ant Tasks -->
<taskde f f ile="tomcatTasks.properties">
<classpath>
<pathelement path="${tomcat.home}/server/lib/catalina-ant.jar"/>
</classpath>
</taskde f>
<target name="install" description="Install application in Tomcat"
depends="war">
<deploy url="${tomcat.manager.url}" username="${tomcat.manager.username}" password="${tomcat.manager.password}" path="/${webapp.name}" war="f ile:$
{dist.dir}/${webapp.name}.war"/>
</target>
<target name="remove" description="Remove application f rom Tomcat">
<undeploy url="${tomcat.manager.url}" username="${tomcat.manager.username}" password="${tomcat.manager.password}" path="/${webapp.name}"/>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论