扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:朱先忠编译 来源:51CTO.com 2007年9月3日
关键字:
七、基于Spring框架进行Web层开发
Spring(springframework.org)是一个无法用一句话来描述的非常复杂的框架。例如,它支持IoC(控制反转)(martinfowler.com/articles/injection.html),一个完整的Web MVC框架,JDBC,ORM,JEE/Web服务,面向方面编程(AOP),声明性事务管理,作业调度,邮件,等等。
基于Spring框架进行开发具有若干优点,例如更为容易和更整洁的单元测试,能够结合企业服务(例如声明性事务管理)在轻量级容器(如Apache Tomcat)内使用POJO,方便的数据存取,以及通过ORM和JDBC集成实现一致的数据异常处理,在一个Web/应用程序服务器上实现作业调度,等。
Spring Web MVC框架
Spring Web MVC框架是一个强壮、灵活、设计良好的框架,用于基于MVC设计模式实现Web应用程序的快速开发。使用Spring模块的一个非常关键的优点就是,它能够直接绑定到业务对象—不象其它框架需要你继承特定的子类。下面,让我们来回顾这个框架中的一些与Java及其配置相关的概念。
Spring MVC Java概念
Spring MVC中提供了如下关键的Java概念:
◆控制器
◆模型和视图对象
◆命令(表单支持)对象
◆校验器对象
◆标签库
Spring MVC的一个非常优秀的特征是,它提供了大量可供选用的控制器类(见图8)。当然,如果你刚开始学习这个框架的话,这可能不是一件好事情,因为你可能难以决定使用哪种控制器类。例如,我习惯于在操作HTML表单时使用SimpleFormController,而当我不需要使用控制器时仅使用UrlFilenameViewController。有些情况下,当我想使用一种非表单式控制器时,我只是简单地实现控制器接口。
图8:Spring MVC提供了大量可供选用的控制器类
许多关键的与GET和POST相关的Spring控制器方法都会返回一个ModelAndView对象—它可以包含与模型相关的数据和一个视图的名字(或对一个视图对象的引用)。对于支持HTML表单的控制器类来说,我们可以使用可选的命令和校验器对象来把HTML表单域绑定到Java对象并且对输入数据进行校验。至于视图本身,Spring支持多种视图技术,包括JSP,Velocity,还有JasperReports。下面让我们来分析如何在视图中使用JSP。
前面的图5展示了一个示例表单的屏幕快照,它可以在JSP中并结合Spring的绑定标签库进行开发。这种Spring绑定标签库相当简单但是功能强大。典型情况下,它被应用于JSP文件中—经由<spring:bind>标签—它实质上实现把HTML表单域绑定到命令对象。而且,它还提供到JSP中特定变量的存取;另外,使用JavaServer页面标准标签库(JSTL)表达式例如${status.value}也可以对这种变量进行存取。下面的代码片断展示了spring:bind标签库的工作方式。请注意在此我们是如何直接绑定到Department域(业务)对象的(在Hibernate一节我们已经讨论过):
|
除了spring:bind之外,Spring 2.0中还引入一些新的标签库,从而使得操作单个HTML表单元素更为容易。这其中的一些新标签包括form:input,form:textarea,等等。
Spring MVC配置概念
到现在为止,我们仅分析了Spring MVC中的一些与Java相关的概念。当然Spring还有其它许多方面需要进行配置。在系统一开始运行时,必须在Web服务器的Web.xml文件中配置它的DispatcherServlet类;这样以来,匹配某一种特定扩展(如.htm)的文件就可以由Spring MVC进行处理。一旦配置好这一点,一切就会转入到Spring MVC控制之中。此后,我们还要在一个Spring应用程序上下文文件内配置视图解析器和处理器映射。视图解析器负责把到来的URL映射为实际的视图名称,而处理器映射部分则负责把到来的URL映射为控制器类。
Spring ORM
Spring的一大优点是它对于第三方API(例如JDBC,JAX-RPC,Hibernate,等等)的支持。例如,如果我们结合Hibernate使用Spring的话,我们不需要自己去编码实现管理Hibernate的sessionFactory、会话及可编程事务管理。结合Hibernate使用Spring的优点在于,它能够把与Hibernate相关的编程量减少几乎一半;同时,还提供其它的优点,例如更容易的测试,一致的异常层次以及对Hibernate资源的管理等。
有关更多细节,请访问网站springframework.org。
八、基于Eclipse IDE进行高效的Java开发
Eclipse平台实质上是一个框架,它提供了一组服务,其它插件能够基于其上运行。每种插件都是基于相同的平台开发,进而组成一组高度集成的工具。当前,Eclipse网站拥有许多正在开发中的子工程,包括从对各种编程语言的支持到建模插件到报告,测试,性能等,几乎涉及到软件开发过程的方方面面。
Eclipse的核心概念中包括了一个工作区—实质上是一个相应于你的工程的目录。Eclipse中最主要的屏幕称作工作台(见图9)。该工作台中包含了一组编辑器和视图。
图9:Eclipse中最主要的工作台屏幕
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者