使用Sping框架构建Java Web项目
本篇使用Sping框架构建一个Java Web项目案例,从实践上对Spring框架有个初步认知。通过本篇的学习,可以掌握以下内容:
● 了解Spring框架能帮我们做什么?
● 如何获取Spring框架?
● 应用Spring框架构建Java Web项目
● 建立Spring配置文件
● 配置web.xml加载Spring配置文件
1、Spring框架能帮我们做什么?
现在大部分Web项目都用框架开发,用的最多,最受欢迎的就是Spring框架,现在的主流集成框架SSM(SSM框架集)、SSH(SSH框架集)都离不开Spring框架。Spring框架的优势体现在以下几个方面:
(1)使用轻量级的Spring IOC 容器替换复杂的EJB容器,简化开发企业级应用程序的复杂度。
(2)Spring框架使用IOC容器和配置文件管理Bean的生命周期和配置,利用DI(依赖注入技术)为Bean注入依赖对象。这样做的好处是可以在配置文件中配置Bean所需要的资源,完成自身的业务逻辑,而无需修改代码,提高了Bean的可扩展性和复用性。
(3)Spring通过反转控制技术,将一个对象依赖的其它对象由IOC容器传递进去,而不是这个对象自己创建或者查找依赖对象。例如,汽车对象依赖于发动机对象,使用Spring框架之前,程序员需要在汽车对象内部创建发动机对象。使用Spring框架之后,发动机对象写入配置文件,由IOC容器创建并传递给汽车对象。Spring的反转控制技术让对象之间的强耦合变为松耦合。
(4)Spring的AOP机制,允许把与业务无关,但需要业务重复调用的公共模块封装起来,并在合适的时间,由AOP将封装的公共模块切入到业务流程中。例如,在编写银行存取款业务流程中,可以把用户验证、记录用户操作的日志模块从流程中提取出来,单独处理。然后,利用Spring的AOP机制将用户验证、记录用户操作的日志模块横向切入到银行存取款业务流程中。AOP机制可以减少系统重复代码,降低模块之间的耦合度,提高代码的可维护性和复用性。
(5)Spring封装了JavaEE提供的JDBC、JavaMail、远程调用等API接口,让程序调用这些接口变得非常容易。
2、如何获取Spring框架?
Spring框架依赖于Apache Commons Logging(Apace开发的日志接口库)。因此,在部署Spring框架之前,需要先下载Apache Commons Logging库。可以从commons.apache.org/logging/ 下载 Apache Commons Logging的最新版本。windows操作系统选择zip格式的压缩包,Linux系统选择tar.gz格式的压缩包。在widows系统下,解压下载的压缩包到任意目录,解压后的文件目录如下图所示。
图1 Apache Commons Logging文件目录
可以从repo.spring.io/release/org/springframework/spring下载最新版的Spring框架文件,选择zip格式的压缩包下载。在widows系统下,解压下载的压缩包到任意目录,解压后的文件目录如下图所示。
图2 Spring框架文件目录
Spring框架的所有Jar包文件都在图中的libs目录下,后面需要将该libs目录下的所有Jar包文件复制到Java Web项目中。
至此,Spring框架已经准备好了。
3、 应用Spring框架构建Java Web项目
让我们使用Spring框架开始实际的编程,启动eclipse,建立Java Web项目,项目名称为SpringProgram。项目添加Spring框架需要下面几个步骤:
(1)复制日志接口库jar包到项目lib目录
进入先前下载并解压缩的日志接口库目录,复制jar包文件到项目WEB-INFO目录下的lib目录。
(2)复制Spring框架jar包文件到项目的lib目录
进入先前下载并解压缩的Spring框架文件目录,进入libs目录,复制所有的jar包文件到项目WEB-INFO目录下lib目录。复制完成,lib目录如下图所示。
图3 项目lib目录下的jar包文件
(3)建立实体Teacher类
Teacher类为实体Bean类,有属性值name,该类由IOC容器统一管理,包括类的创建和属性值的注入。类代码如下:
(4)建立Spring配置文件
在src目录下新建config目录,用于存储配置文件。在新建的config目录下建立dispatcher.xml文件。Spring配置文件是XML格式的文件,该文件非常重要,是Spring框架的核心,Spring实现的所有功能都依赖于该配置文件。本文仅实现Bean类的配置。配置文件代码如下:
配置文件定义了Teacher类,当外部从IOC容器获取该类时,IOC容器将创建Teacher类实例,并把属性值“zhang”注入到创建的Teacher类实例中。
(5)建立Spring监听器
建立Spring监听类,实现ServletContextListener接口,在实现的contextInitialized接口方法中,创建IOC容器,然后将IOC容器放在ServletContext的一个属性中。代码如下:
(6)建立TeacherInfoServlet类
TeacherInfoServlet类继承于HttpServlet类,用于处理JSP页面发送的请求,该类从application域对象中得到IOC容器的引用,从IOC容器中得到需要的Teacher类。代码如下:
(7)修改web.xml配置文件
在项目中打开web.xml配置文件,添加下面的语句:
Web.xml 配置文件内容说明如下:
用于加载Spring配置文件,
添加监听类SpringServletContext。
4、 验证项目
在WebContent目录下,新建index.jsp文件,在
标签之间输入下面的内容:启动服务器,运行index.jsp,若没有什么问题,index.jsp将被正常打开。如果服务器报错,可能是配置或代码出了问题,请对照本文内容仔细检查。
■ 课程小结
Spring框架提供了IOC(轻量级容器)、DI(依赖注入)、控制反转以及AOP技术,这些技术可以减轻企业级项目开发的复杂度,特别是控制反转机制将依赖对象的强耦合弱化为松耦合,提高了代码的复用性、维护性和可扩展性。
Java Web项目添加Spring框架要注意以下几点:(1)Spring框架依赖于Apache Commons Logging;(2)Spring框架和Apache Commons Logging的所有Jar包文件都要复制到Java Web项目的lib目录;(3)建立Spring配置文件,并在web.xml配置文件中加入读取Spring配置文件的命令。