Spring框架技术

上传人:抢*** 文档编号:58892277 上传时间:2022-03-01 格式:DOC 页数:240 大小:3.69MB
收藏 版权申诉 举报 下载
Spring框架技术_第1页
第1页 / 共240页
Spring框架技术_第2页
第2页 / 共240页
Spring框架技术_第3页
第3页 / 共240页
资源描述:

《Spring框架技术》由会员分享,可在线阅读,更多相关《Spring框架技术(240页珍藏版)》请在装配图网上搜索。

1、 兴林IT教育Spring框架技术第三阶段徐州市兴林信息技术有限公司 编著内容提要本书共分为9章,第1章介绍Spring的入门知识;第2章介绍了Spring环境的安装与配置;第3章介绍了Spring的简单应用;第4章介绍了Spring的基础概念;第5章详细讲解了Spring的控制反转容器;第6章详细介绍了Spring的面向方面的编程;第7章介绍了Spring的事务处理机制;第8章介绍了Spring的持久层封装;第9章通过示例详细介绍了Spring的MVC框架,阐述了Spring MVC的开发流程。全书理论简明、示例丰富、化难为简、由浅入深。 兴林教育软件工程师系列教材- 内部刊号:024 徐州

2、市兴林信息技术有限公司 编著 网址: 版本:V1.0 版次:2008年5月第1版第1次 规格:A4 350千字 - 内部资料 翻印必究前 言随着各行业的信息化的不断发展,软件技术已经渗透到社会的各个领域,社会上对软件人才的需求量不断增加。但另一方面,应该看到, 很多计算机专业毕业的本科生却找不到理想的工作。问题出在哪里?针对这种现象,业内专家称之为人才的“结构型过剩”。究其原因,就是社会上虽然有大量的“人材”,但是企业需要的却是“人才”。兴林教育正是看到了目前人才市场中所存在的问题,深感教书育人的责任重大,在教学中总结经验,总结教学成果,不断寻找一条培养计算机软件人才的正确道路。这套计算机软件

3、系列丛书,正是探索和总结的经验结晶。Java 技术和.Net技术是当代广泛使用的两种主流技术。为了满足企业和计算机专业中专、高职教学需要,徐州市兴林信息技术有限公司组织开发了兴林教育软件工程师系列教材,从三个方面综合讲解Java和.Net技术的精髓。将课程知识分成两个专业方向(即Java方向和.Net方向),让学生更有效的学习某一种技术,从而避免大而全,知识掌握不够透彻的弊病。具体系列教材如下:.Net系列教材:C# 语言程序设计基础、C#面向对象的程序设计、WinForm基础、WinForm高级技术、C# ASP.Net基础、C# ASP.Net高级技术、Ajax与Web Service。

4、Java EE系列教材:Java语言程序设计基础、Java面向对象的程序设计、Java web应用技术、Struts框架技术、Hibernate框架技术、Spring框架技术、Java安全技术。公共课程:计算机基础、HTML语言基础、SQL Server基本应用、SQL Server高级应用、XML基础、ORACLE数据库开发,面向对象的软件系统分析与设计、程序设计模式(Java和C#)。 这套教材突出对学生进行以下3个方面的训练和培养。在技能方面,通过大量上机练习、代码阅读、代码改错、规范化检查,训练学生编写程序的熟练度和规范性;在项目经验上,通过完成大量的项目案例和阶段项目,增加对实际软件

5、项目开发的体验;在职业素质方面,通过多种训练手段,培养学生具备良好的职业习惯,实现学生在校即成为准职业人。教材由徐州市兴林信息技术有限公司20余名专家教授研发,内容紧跟时代潮流,包含当今社会最先进的软件技术,具有很强的知识性和实用性,其中部分教材被纳入“十一五”规划高等教育用书。专业系列教材融合了中专、高职必须的专业基础理论,整个系列教材由浅入深,循序渐进,以企业需求作为教材内容的方向标,以最新、最实用的技术作为核心,以动手实践为重点培养方法,以项目案例贯穿教学,强调能力训练。由于时间仓促,作者水平有限,书中难免有不妥和错误之处,恳请广大读者指正。系列教材总主编 蒋林清 2008.1.18 于

6、江苏徐州 目 录第1章 Spring概述11.1 Spring的历史11.2 Spring框架介绍11.3 Spring和J2EE21.3.1 经典J2EE体系结构21.3.2 轻量级容器31.3.3 Spring和J2EE的关系41.4 Spring的架构价值4小结5习题5第2章 Spring环境的安装与配置62.1 安装Java基础环境62.1.1 下载并安装JDK62.1.2 设定Path与Classpath62.1.3 下载并配置Tomcat72.2 在Eclipse中应用Spring框架82.2.1 为Eclipse配置Tomcat插件82.2.2 Spring环境安装92.2.3

7、在Eclipse中配置Spring11小结14习题14第3章 Spring简单应用153.1 使用Spring实现HelloWorld的示例153.1.1 编写HelloWorld.java153.1.2 配置Spring的config.xml文件163.1.3 编写测试程序TestHelloWorld.java173.1.4 运行测试程序并查看输出结果183.2 改写HelloWorld示例以实现中英文输出183.2.1 编写接口文件Hello.java193.2.2 编写实现接口的两个类(ChHello、EnHello)193.2.3 修改Spring的配置文件config.xml203.

8、2.4 修改测试程序TestHelloWorld.java213.2.5 运行测试程序并查看输出结果21小结22习题22第4章 Spring的基本概念234.1 反向控制/依赖注入234.1.1 反向控制(IoC)234.1.2 依赖注入(DI)284.2 依赖注入的三种实现方式284.2.1 接口注入284.2.2 Set注入294.2.3 构造注入304.3 将HelloWorld示例改为构造注入方式实现314.3.1 修改HelloWorld.java314.3.2 修改config.xml314.3.3 编写测试程序TestHelloWorld.java324.3.4 运行测试程序并查

9、看输出结果324.4 使用哪种注入方式33小结33习题33第5章 Bean的控制、管理345.1 简介345.2 配置文件中 Bean的说明345.2.1 Bean基本知识345.2.2 Bean的标识(id)345.2.3 Bean类的说明(class)365.2.4 单对象Bean或非单对象Bean365.2.5 Bean类属性的说明375.2.6 Bean的属性depends-on405.2.7 一个较为完整的配置文件415.3 Bean生命周期有关属性415.3.1 Bean的定义415.3.2 Bean的初始化435.3.3 使用Bean的方式465.3.4 Bean的撤消465.4

10、 ref不同属性的使用505.4.1 local505.4.2 bean515.4.3 parent515.4.4 local与bean的比较525.5 Bean自动装载的方式525.5.1 byName525.5.2 byType535.5.3 constructor545.5.4 autodetect555.5.5 no565.5.6 对五种方式总结565.6 Bean依赖检查的方式575.6.1 simple575.6.2 object575.6.3 all585.6.4 none585.6.5 对四种方式进行总结595.7 集合的注入方式595.7.1 List595.7.2 Set6

11、05.7.3 Map615.7.4 Properties625.7.5 几种注入方式的总结625.8 管理Bean635.8.1 使用BeanWrapper635.8.2 使用BeanFactory655.8.3 使用ApplicationConext675.8.4 三种管理Bean的比较685.9 ApplicaiotnConext更强的功能685.9.1 国际化支持685.9.2 资源访问715.9.3 事件传递72小结75习题75第6章 *Spring的面向方面编程766.1 AOP简介766.1.1 AOP概念766.1.2 AOP中相关术语的介绍786.1.3 AOP和OOP关系81

12、6.1.4 AOP相关框架及工具简介826.1.5 AOP在企业级应用程序中的作用836.2 AspectJ简介及快速入门836.2.1 AspectJ介绍846.2.2 AspectJ的下载及安装846.2.3 在Eclipse中开发AspectJ程序866.2.4 AspectJ版的HelloWorld886.2.5 AspectJ中相关术语896.2.6 一个简单的回合格斗小游戏956.3 一个简单的Spring AOP示例1006.3.1 定义业务组件1006.3.2 使用基于Schema的配置文件配置Spring AOP1016.3.3 使用Java注解配置及使用Spring AOP

13、1036.3.4 基于API方式来使用Spring AOP1056.4 Spring中的AOP实现及应用1076.4.1 简介1076.4.2 Spring AOP中对AspectJ的支持1086.4.3 Spring AOP配置方法109小结116习题116第7章 Spring的事务处理1177.1 简述事务处理1177.1.1 事务处理的基本概念1177.1.2 事务处理的特性1177.1.3 对事务处理特性的总结1187.2 事务处理的三种方式1197.2.1 关系数据库的事务处理1197.2.2 传统的JDBC事务处理1197.2.3 分布式事务处理1217.3 Spring的事务处理

14、1217.3.1 Spring事务处理概述1217.3.2 编程式事务处理1237.3.3 说明式事务处理1297.4 事务处理的选择133小结133习题134第8章 Spring的持久层封装1358.1 传统的Jdbc数据访问技术1358.2 通过配置文件实现DataSource(数据源)注入1368.2.1 使用Spring自带的DriverManagerDataSource1368.2.2 使用DBCP(Database Connection Pool)连接池1388.2.3 使用Tomcat提供的JNDI1408.3 使用JdbcTemplate访问数据1418.3.1 Templat

15、e模式简介1418.3.2 回顾事务处理中TransactionTemplate的实现方式1428.3.3 JdbcTemplate的实现方式1458.3.4 使用JdbcTemplate查询数据库1548.3.5 使用JdbcTemplate更改数据库1548.4 使用ORM工具访问数据1558.4.1 ORM简述1558.4.2 使用Hibernate156小结160习题160第9章 Spring的Web框架1619.1 一个简单的Spring示例1619.1.1 配置web.xml1619.1.2 编写输出页面index.jsp1629.1.3 编写控制器页面HelloWorldActi

16、on.java1629.1.4 配置Spring文档dispatcherServlet-servlet.xml1649.1.5 调试运行程序1659.1.6 把index页面改为使用Jstl1659.1.7 修改配置文件dispatcherServlet-servlet.xml1669.1.8 调试运行程序1679.2 Spring MVC框架介绍1689.2.1 模型和视图(ModelAndView)1699.2.2 控制器(Controller)1729.2.3 分发器(DispatcherServlet)1859.2.4 处理器映射1919.2.5 数据验证1999.2.6 本地化支持2

17、089.3 使用Spring MVC实现用户登录的示例2119.3.1 建立项目myMVC2119.3.2 编写日志文件2129.3.3 配置web.xml2139.3.4 编写登录页面login.jsp2149.3.5 编写成功登录页面success.jsp2149.3.6 编写存放用户信息的Bean2159.3.7 编写信息验证UserValidator.java2169.3.8 编写用户登录逻辑Login.java2169.3.9 编写配置文件dispatcherServlet-servlet.xml2179.3.10 调试运行程序2199.3.11 国际化支持220小结226习题226

18、参考文献227230第1章 Spring概述本章导读:本章要求学生了解Spring的起源、Spring的总体结构、Spring与Java J2EE的关系。1.1 Spring的历史应用软件的开发变得越来越庞大,软件技术也越来越复杂。为此,软件人员常常忙于对软件技术的研发和应用,而弱化了对业务本身复杂性的分析。为了减少软件人员花费在软件技术上的时间,而把精力放在对业务本身的理解上,很多应用框架应运而生,Spring是其中最优秀的一个。 Spring最初起源于2002年Rod Johnson的Expert One-on-One J2EE设计与开发一书,该书阐述了Spring的架构思想。后来,Rod

19、 Johnson又在新著Expert One on one J2EE Development Without EJB中阐述了使用Spring就可以代替EJB。1.2 Spring框架介绍 Spring是一个开源框架,是为了解决应用程序开发的复杂性而创建的。该框架的主要优势是其规范的设计和分层架构,软件开发人员可以只选择Spring提供的某项技术,例如AOP,而不需要使用它提供的其它技术。同时,Spring还提供了和其它开源软件的无缝结合,为J2EE应用程序开发提供了集成的框架。 Spring的核心是控制反转,通过配置文件来完成业务对象之间的依赖注入(即引用),它提倡规范的开发习惯,那就是注入对

20、接口编程而不是对类编程。Spring提供了事务处理的功能,能够在各种底层事务处理技术上提供一个统一的编程模型。它还提供了一个简单而有效的JDBC应用。不但如此,它还能和其它一些开源框架进行无缝结合。此外,Spring还提供了一个强大而灵活的Web框架,它同样是基于控制反转。 Spring框架由七个模块组成,如图1-1所示。其每个模块的功能如下。(1)核心容器:提供了Spring框架的核心功能。BeanFactory是Spring核心容器的主要组件。它通过控制反转将应用程序的配置和依赖性规范与实际的应用程序代码分开,这是整个Spring的基础。(2)上下文模块:通过配置文件,向Spring框架提

21、供上下文信息。它构建在BeanFactory之上,另外增加了国际化、资源访问等功能。(3)AOP模块:Spring提供了面向方面编程的功能,因为Spring的核心是基于控制反转的,所以可以很容易地使Spring的依赖注入为AOP提供支持。图1-1 Spring框架图(4)DAO模块:提供了一个简单而又有效的JDBC应用,使用它的DAO就可满足开发人员的日常应用。(5)ORM模块:Spring除了有自己的JDBC应用之外,还提供了对其它一些ORM框架的支持,例如JDO、Hibernate和iBatis等。基于Spring的规范设计,这些开源框架都可以和Spring进行集成。(6)Web模块:提供

22、了简化的处理多部分请求以及将请求参数绑定到域对象的任务。(7)MVC模块:Spring提供了MVC2模式的实现,使用起来非常方便,但它不强制开发人员使用。如果开发人员对其它的MVC框架比较熟悉,仍然可以使用它们。Spring对此提供了很好的支持,例如Spring可以和Struts集成在一起。1.3 Spring和J2EE1.3.1 经典J2EE体系结构J2EE是当前的主流架构之一,目前大多数企业采用J2EE的结构设计和解决方案。J2EE提供了中间层集成框架,以便满足可用、可靠及可扩展的应用需求。通过统一的开发平台,J2EE降低了开发多层应用的成本和复杂度;支持EJB;支持对现有应用程序的集成;

23、提高了异构环境的协同工作能力;支持打包和应用部署;增强了安全机制,提高了性能。J2EE也是开发分布式企业软件应用的平台,应用逻辑按功能划分为组件,各个应用组件根据它们所在的层被分布于不同的物理节点。在J2EE多层企业级应用中,传统的两层结构,被划分为了多层。一个多层应用能为不同的服务提供一个独立的层,以下是J2EE典型的四层结构。如图1-2所示。图1-2 经典J2EE体系结构图(1)用户层:运行于客户端机器,与用户发生交互,并把来自系统的信息显示给用户(如html、applets等)。(2)Web层:运行于J2EE服务器,产生表示逻辑,并接收来自表示层客户端的用户反馈(如Servlet、JSP

24、等)。(3)业务层:运行于J2EE服务器,处理应用的核心业务逻辑(如EJB、JavaBean等)。(4)EIS层(Enterprise Information System):运行于EIS服务器,这一层为企业的信息系统服务,包括数据库系统、事务处理系统等。通常认为,运行在J2EE服务器上的EJB容器是此结构的核心,EJB组件负责接收、处理Web容器的客户请求和连接,提供整个企业使用的数据。1.3.2 轻量级容器 为了解决经典架构中的一系列问题,J2EE逐步流行起了非EJB架构的“轻量级容器”。轻量级容器与EJB架构都是由容器管理业务对象,然后再组织整个架构。但是业务对象不是运行在EJB容器中,

25、而是运行在“轻量级容器”中。轻量级容器并没有和J2EE绑定,所以它既可以运行在Web容器里,也可以在一个标准应用程序中运行。这个容器也没有和Servlet API绑定。这一点与MVC结构的Web框架不同。轻量级容器的启动开销很小,而且无需EJB部署。轻量级容器提供了一种管理、定位业务对象的方法。不必使用JNDI寻址、定制服务器之类的额外辅助;轻量级容器为应用对象提供注册服务。较之EJB容器而言,它不仅功能强大,而且避免了容器强制业务对象采用特定的接口,最低程度地降低了侵入性,实现了效果极佳的架构重用。轻量级容器中所有的Java类都运行在同一个虚拟机中。本书中的Spring正是这样的轻量级容器。

26、1.3.3 Spring和J2EE的关系 虽然Spring的许多部分可以在各种类型的Java环境下使用,但从根本上说,它仍然是一个J2EE应用框架。例如,Spring提供了将JNDI资源(例如JDBC数据源、EJB等)连接到Bean的工具类。大多数情况下,Spring管理的应用对象不需要直接使用J2EE的API,也不需要编写繁琐的JNDI查询代码,从而提高了重用性。Spring允许应用代码与J2EE环境的无缝集成,而不受环境的束缚。如果需要J2EE服务,可以使用这种方法;如果需求不是太复杂,也可以选择轻量级的解决方案。 Spring为EJB实现类提供了方便易用的父类,它可以根据ejb-jar.

27、xml部署描述文件中一个特定的环境变量来加载Spring的轻量级容器。 Spring的主要目标就是让J2EE更易用、同时促进规范的编程习惯。Spring没有连接池和分布式事务协调器。这些功能都来自于其它的开源项目。XML1.4 Spring的架构价值 Spring是一个开源项目,它是由Spring之父Rod Johnson从商业项目开发实践中逐步提炼出的一种架构。Spring项目从正式启动,整个项目的开发始终贯彻着以下这些核心架构的理念,它具有概念上的完整性和一致性。 (1)降低开发成本。尽可能允许代码集中精力实现业务逻辑和其它应用功能,通过降低开发难度来提高开发效率,使应用代码更易维护,降低

28、整个项目的生命周期成本。 (2)方便使用。J2EE本身的复杂性颇高,对于许多常见的应用问题,直接使用J2EE本身的API相当麻烦。一个好的基础框架能使任务简单化,方便使用。框架也能帮助开发人员更合理简便地去使用J2EE服务(如JTA等),而不需要开发人员面对复杂的需求。 (3)整合各类框架。J2EE的各个具体领域都有很多出色的解决方案,如Web框架、持久化方案、远程方案等。但是,将这些框架整合成一个全套的架构方案却不是一件易事。Spring的目标就是提供一种兼顾各类J2EE框架的综合解决方案,将它们融为一体,并提供丰富的扩展功能。(4)易于选择。一个框架应该有清晰的层次划分,允许用户使用其中的

29、单项功能。而不是把自己的整个世界观强加给用户。Spring中的许多特性,例如AOP、JDBC抽象、Web MVC等,都可作为独立的库使用。(5)方便测试。测试应该尽量简单,可以很轻松地用“伪对象”模拟整个资源。(6)统一配置。一个好的基础框架可以让应用配置灵活而且统一,不需要自制单对象(Singleton)或对象工厂(Factory),从中间层到Web控制器,所有的配置需求都可以用统一的方式满足。(7)灵活可扩展。Spring力求遵循一些最佳的编程规范,例如针对接口编程。另外,Spring不强制应用藕合于特定的架构,而把选择权留给用户。这些特性意味着Spring框架是高度可扩展的,它是完全基于

30、接口、而非基于类的。大量的Spring的组件是可以定制的。(8)非侵入性。应用对象应该尽量避免依赖特定的框架。如果需要使用Spring的某个功能,对象应该只依赖于这项特定的功能。IoC和AOP技术为避免框架依赖提供了可能。小结本章概要地介绍了Spring框架。Spring的目标不是取代J2EE中间层服务,它的目标是让访问底层的J2EE容器服务更为简单。此外,在一些特定情况下,Spring还为几种特定的J2EE服务提供了轻量级的选择。习题1简述Spring的发展历史。2Spring框架由哪些模块构成?每个模块的功能各是什么?3Spring框架和经典J2EE框架有什么关系?4什么是轻量级容器?它的

31、特点有哪些?5Spring框架的架构价值体现在哪些方面?第2章 Spring环境的安装与配置本章导读:本章要求学生学会下载、安装、配置Spring涉及的系统。其中包括JDK、Tomcat、Eclipse。2.1 安装Java基础环境2.1.1 下载并安装JDK 从Java的官方网站http;/2.1.2 设定Path与ClasspathJDK安装完毕后,还要设定系统的环境变量Path与Classpath。步骤如下:(1)在Windows桌面中,右击【我的电脑】;(2)在弹出的快捷菜单中选择【属性】,弹出“系统属性”对话框;(3)在“系统属性”对话框中,选择【高级】【环境变量】,弹出“环境变量”

32、对话框,如图2-1所示;图2-1 “环境变量”对话框(4)图2-1中选择【系统变量】【新建】,在弹出的“编辑系统变量”对话框中设定系统变量Path,Path=C:Javajdk1.5.0_06bin,如图2-2所示。图2-2 设定系统变量Path (5)单击“系统变量”选项区域中的“新建”,在弹出的“编辑系统变量”对话框中设定系统变量Classpath,Classpath= .;C:Javajdk1.5.0_06libtools.jar;C:Javajdk1.5.0_06libdt.jar,如图2-3所示。图2-3 设定系统变量Classpath 2.1.3 下载并配置Tomcat(1)从ht

33、tp:/tomcat.apache.org可下载到Tomcat的各种版本。本教材使用的是jakarta-tomcat-5.0.28。下载后,在硬盘上会保存一个名为jakarta-tomcat-5.0.28的压缩文件。(2)把下载的jakarta-tomcat-5.0.28的压缩文件解压缩到D盘根目录下,将产生一个jakarta-tomcat-5.0.28文件夹。(3)使用前面设定JDK的Path与Classpath的方法,在系统环境变量中新建一个环境变量TOMCAT_HOME,设定TOMCAT_HOME= D:jakarta-tomcat-5.0.28,如图2-4所示。图2-4 设定环境变量T

34、OMCAT_HOME2.2 在Eclipse中应用Spring框架2.2.1 为Eclipse配置Tomcat插件 将Eclipse和Tomcat联系起来。其步骤如下;(1)把下载Tomcat插件tomcatPluginV321.zip解压缩,会产生一个tomcatPluginV321文件夹;(2)把tomcatPluginV321文件夹下的com.sysdeo.eclipse.tomcat_3.2.1文件夹复制到D:eclipse-SDK-3.2.1plugins下;(3)双击D盘eclipse-SDK-3.2.1文件夹下的【eclipse.exe】,运行Eclipse;(4)在Eclips

35、e菜单栏中选择【WindowsPreferences】,弹出Preferences对话框;(5)单击Preferences对话框左边列表框中的【Tomcat】;(6)在Preferences对话框右边的Tomcat version选项区域中选择Tomcat版本为Version 5.x;(7)在Preferences对话框右边的Tomcat home文本框中选择Tomcat路径D:jakarta-tomcat-5.0.28;在Context declaration mode选项区域中,采用默认的server.xml,然后单击【OK】即可,如图2-5所示;图2-5 为Eclipse配置Tomcat

36、插件(8)单击Eclipse界面内菜单栏上的【Tomcat】,启动Tomcat,如图2-6所示;图2-6 启动Tomcat(9)Tomcat启动后,在IE地址栏中输入http:/localhost:8080,即可测试是否配置成功。Tomcat启动成功后的画面如图2-7所示。图2-7 Tomcat启动成功的界面2.2.2 Spring环境安装2.2.2.1 获取Spring发布包Spring属于开源项目,在开源网站中可以看到两个版本的Spring发布包:(1)Spring-framework-2.0.8是Spring的开发包,可以理解为标准发布包;(2)Spring-framework-2.0.

37、8-with-dependencies是Spring的依赖版,它不但包含Spring开发包,而且还包含Spring需要的所有第三方类库,例如Hibernate、JSF、Ant等。可以在http:/www.springframework.org/download下载最新的发布包。如果没有特殊的情况,建议读者下载Spring的依赖版,这样可以避免到Internet上寻找第三方类库的麻烦。2.2.2.2 Spring包简介发布包中包含许多目录,各目录的说明如下:dist:Spring的开发类库、Spring定制的JSP标签库、spring-beans.dtd文件等;docs:存放各类文档,包含Spr

38、ing的API、Spring和MVC教程、Spring标签库文档;lib:存放第三方类库;mock:存放测试用的Mock类;samples:存放演示示例;src:存放Spring的源代码;test:存放Spring的测试代码。其中,dist目录中包含的8个JAR文件,它们分别负责Spring不同的模块,具体介绍如表2-1所示。表2-1 Spring的JAR文件JAR文件描述Spring.jar整个Spring模块,包含表中所有JAR的功能Spring-core.jarSpring的核心模块,包括IoC容器Spring-aop.jarSpring的AOP模块Spring-context.jarS

39、pring的上下文,包括ApplicationContext容器Spring-dao.jarSpring的DAO模块,包含对DAO与JDBC的支持Spring-orm.jarSpring的ORM模块,支持Hibernate、JDO等ORM工具Spring-web.jarSpring的Web模块,包括Web application contextSpring-webmvc.jarSpring的MVC模块如表2-1所示,除Spring.jar文件外,每个JAR文件都对应一个Spring模块。可以根据需要单独引入需要的模块,也可以直接使用Spring.jar文件应用整个Spring框架。在学习过程中

40、,建议选择整个Spring框架。针对不同的应用程序与Web应用,Spring的安装稍有差异:(1)应用程序使用Spring时,直接将需要的JAR文件复制到应用程序的Classpath指定目录中;(2)对于Web应用,必须将需要的JAR文件拷贝到Web应用的WEB-INF文件夹下的lib文件夹中,Web服务器(如Tomcat)启动时会自动装载lib文件夹中所有的JAR文件。2.2.3 在Eclipse中配置Spring当Spring解压缩完毕后,就可以在Eclipse中配置Spring了。这里主要从三个方面讲解:首先在Eclipse中建立一个项目myApp,然后把Spring相关的jar配置到该

41、项目中,最后在项目中建立三个包。这三个包的作用分别为:com.gc.action用来存放实体,com.gc.impl用来存放接口类,com.gc.test用来存放测试类。具体步骤如下:(1)运行Eclipse,选择【File】【New】【Project】命令,弹出New Project对话框,如图2-8所示。(2)选择列表框下的Java下的【Tomcat Project】,然后单击【Next】,弹出New Tomcat Project对话框,如图2-9 所示。(3)在图2-9 New Tomcat Project对话框中输入“myApp”,然后单击【Finish】按钮,项目即可建立成功。myA

42、pp的目录结构如图2-10所示。图2-8 New Project对话框图2-9 New Tomcat Project对话框图2-10 myApp目录结构(4)把Spring.jar文件复制到myApp/WEB-INF/LIB目录下,即Classpath中。(5)在程序中需要jakarta的日志元件,所以把Spring-framework-2.0.8-with- dependencies/lib/jakarta-commons下的commons-logging.jar复制到myApp/WEB-INF/lib下。(6)把Spring-framework-2.0.8-with-dependencie

43、s/lib/log4j下的log4j-1.2.14.jar复制到myApp/WEB-INF/lib目录下。(7)用Windows自带的文本编辑器建立一个文件log4j.properties,把log4j.properties放到myApp/WEB-INF/src下。编辑log4j.properties文件,内容如下:log4j.rootLogger=DEBUG,stdout,Rlog4j.logger.org=ERROR, A1#定义log4j显示方式log4j.appender.A1=org.apache.log4j.RollingFileAppender#指定日志输入文件的名称log4j.

44、appender.A1.File=org.log#指定日志输入文件的大小log4j.appender.A1.MaxFileSize=500KBlog4j.appender.A1.MaxBackupIndex=50log4j.appender.A1.Append=truelog4j.appender.A1.layout=org.apache.log4j.PatternLayout#指定日志输入文件的内容格式log4j.appender.A1.layout.ConversionPattern=%dISO8601 - %p %C1 - %m%n#定义log4j的显示方式log4j.appender.

45、A2=org.apache.log4j.RollingFileAppender#指定日志输入文件的大小log4j.appender.A2.File=gc.loglog4j.appender.A2.MaxFileSize=500KBlog4j.appender.A2.MaxBackupIndex=50log4j.appender.A2.Append=truelog4j.appender.A2.layout=org.apache.log4j.PatternLayout#指定日志输入文件的内容格式log4j.appender.A2.layout.ConversionPattern=%dISO8601

46、 - %p %C1 - %m%n(8)图2-10中,在myApp上单击鼠标右键,在弹出的快捷菜单中选择【Properties】命令,将弹出Properties for myApp对话框,如图2-11所示。图2-11 Properties for myApp对话框(9)在图2-11 Properties for myApp对话框中选择左边列表框中的【Java Build Path】,选择【Libraries】,在Libraries选项卡中,单击【Add JARs.】,弹出JAR Selection对话框,如图2-12所示。按住Ctrl键,选中这三个jar,然后单击【OK】,返回到Properti

47、es for myApp对话框。在Properties for myApp对话框中单击【OK】即可完成对Spring的配置。图2-12 JAR Selection对话框(10)在myApp项目上单击右键新建package的New文本框中输入com.gc.action ,然后单击【Finish】,即可建立com.gc.action包。用同样的方法建立com.gc.impl和com.gc.test包。最终配置好Spring的myApp项目的目录结构如图2-13所示。图2-13 配置好Spring的myApp项目的目录结构至此,一个简单的Spring运行环境配置完毕。若在后面的项目中还需要用到Spr

48、ing所依赖的其它开源项目的jar,只需按照以上的方法随时添加到myApp/WEB-INF/lib下(见图2-12)。小结本章详细讲解了Spring环境的安装与配置过程,读者可以按照顺序一步步建立起Spring的开发环境。习题1练习掌握Spring框架环境的配置过程。2Spring发布包中有哪些文件夹,各个文件夹的功能是什么?3Spring框架中的各种JAR文件的功能是什么?第3章 Spring简单应用本章导读:本章要求学生理解Spring框架下简单程序开发的特点、步骤。其中JavaBean是实现业务逻辑的主要类。接口和实现分离是Spring框架下程序开发的一个特点,其配置文件可以改变Java

49、Bean的类属性值、选择运行不同类而不必修改类源程序。3.1 使用Spring实现HelloWorld的示例使用Spring开发一个Web应用步骤如下:(1)编写JavaBean,在本例中即为HelloWorld.java;(2)编写配置文件(XML),本例中即为config.xml;(3)编写测试程序,在本例中即为TestHelloWorld.java。3.1.1 编写HelloWorld.javaHelloWorld.java是JavaBean,编写步骤如下:(1)在com.gc.action包上单击鼠标右键,在弹出的快捷菜单中选择选择【New】【Class】,弹出New Java Cla

50、ss对话框,在Name文本框中输入HelloWorld,其它为默认值,如图3-1所示。然后单击【Finish】按钮,在com.gc.action包下建立了一个HelloWorld.java文件。(2)在HelloWorld.java中输入如下代码:/*HelloWorld.java*package com.gc.action;public class HelloWorld /该变量用来存储字符串private String msg = null; /设定变量msg的set方法public void setMsg(String msg) this.msg = msg;/设定变量msg的get方法

51、public String getMsg( ) return this.msg;图3-1 New Java Class对话框3.1.2 配置Spring的config.xml文件在上面编写的HelloWorld.java文件中,有set和get两个方法,分别用来读写对象属性。在未使用Spring框架时,使用该类的代码如下;/*TestHelloWorld.java*package com.gc.test;import com.gc.action.HelloWorld;public class TestHelloWorld public static void main(String args)

52、HelloWorld heelloWorld = new HelloWorld( );/利用set方法将HelloWorld注入程序中helloWorld.setMsg(“HelloWorld”);/利用get方法获取刚才注入的HelloWorldSystem.out.println(HelloWorld.getMsg( );可有了Spring之后,就不需要再通过程序来访问该类对象属性了。Spring提供了通过配置文件来定义Bean的功能。编写步骤如下:1、使用Windows自带的文本编辑器来建立config.xml文件,内容如下; HelloWorld 配置文件代码说明:(1)id=”Hel

53、loWorld”,用来唯一表示该Bean;(2)class=com.gc.action.HelloWorld,用来表示该Bean的来源;(3)name=msg,和JavaBean中定义的变量对应 “HelloWorld”,设定了希望向JavaBean中注入的字符串“HelloWorld”;2、config.xml文件配置完毕后,将其放在当前的工作路径下,即myApp下,和WEB-INF在同一个目录。3.1.3 编写测试程序TestHelloWorld.java这个Java文件主要用来对编写的程序进行测试。编写步骤如下:(1)使用上面的方法,在com.gc.test 包下建立TestHelloW

54、orld.java文件。(2)在TestHelloWorld.java中输入如下代码:/*TestHelloWorld.java*package com.gc.test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.FileSystemXml.ApplicationContext;import com.gc.action.HelloWorld;public class TestHelloWorld public static void main(S

55、tring args) throws InstantiationException, IllegalAccessException, ClassNotFoundException ApplicationContext actx=new FileSystemXml.ApplicationContext(config.xml);HelloWorld helloWorld =(HelloWorld)actx.getBean(“HelloWorld”);System.out.println(helloWorld.getMsg( );上面测试代码中,程序利用ApplicationContext来读取co

56、nfig.xml,从而完成JavaBean与配置文件之间关系的建立,接着就可以使用getBean( )方法来获取在配置文件中定义的内容。3.1.4 运行测试程序并查看输出结果在Eclipse中运行Java程序的步骤如下:(1)在TestHelloWorld.java文件上单击右键,选择【Run As】【Java Application】,Eclipse即可运行TestHelloWorld.java。输出结果为“HelloWorld”,如图3-2所示。图3-2 输出结果为“HelloWorld”(2)把config.xml中HelloWorld的字符串“HelloWorld”改为“Hello z

57、hangsan”,再次运行TestHelloWorld.java。输出结果为“Hello zhangsan”,如图3-3所示。图3-3 输出结果为“Hello zhangsan”至此,第一个Spring程序基本完成。可以看到,不用改变代码,只是改变一下配置文件,就可以使程序输出不用的结果。这就意味着,如果要改变一些对象之间的依赖关系,只需修改配置文件,而不用更改代码了,这就是Spring的一个与众不同之处。这里其实是简单利用了Spring的反向控制IoC功能(详见第5章),Spring不仅能通过配置文件定义bean 的属性值,还可以改变类的来源,接下来通过下面的示例展示Spring的这个功能。3.2 改写HelloWorld示例以实现中英文输出通过上述HelloWorld程序在Spring下的开发,读者初步感受了Spring的特色。下面将对这个示例进行扩充,利用配置文件来实现不同类之间的切换,从而使程序根据配置文件来输出中文问候语或英文问候语。编写这个程序分三步:(1)编写接口Hello.java;(2)接下来编写实现类ChHello.java和EnHello.java;(3)修改config.xml,改写测试程序。3.2.1 编写接口文件Hello.java这个接口定义了一个方法doSalutation( ),接下来的实现类都将实现这个接口。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!