在上文中(点击这里回顾>>),主要为大家介绍了使用Spring的Scaffolding应用程序,本文将继续讲解CRUD Scaffolding。
2. CRUD Scaffolding
Scaffolding指的是MyEclipse广泛代码生成功能的超集,从生成一组特定的请求软件组件到生成完全实现的可运行应用程序。除了减少应用程序开发工作和使开发人员免于一些开发工作的明显好处之外,Scaffolding还经常用于快速开发功能原型、学习新技术和应用程序现代化项目。
快速生成完整应用程序的能力对原型设计非常有益,因为您可以在几分钟内迭代域模型并重新生成功能原型,原型可以作为细化需求的工具和开发的起点与业务分析人员一起使用。MyEclipse通过生成上下文引用项目帮助许多开发人员学习新技术,上下文引用项目是基于他们自己的数据模型的个性化项目。这是一种比寻找通常不完整、不遵循现代最佳实践并且基于琐碎数据模型的示例项目要好得多的方法,MyEclipse还可以通过利用来自当前系统的应用程序构件为新系统生成重要部分的应用程序组件,来快速启动应用程序现代化工作。
MyEclipse Spring scaffolding函数使用创建-读取-更新-删除(CRUD)应用程序模式来生成允许最终用户管理应用程序数据的应用程序,虽然CRUD不是唯一的应用程序模式,但它是相当典型的。并不是所有的Web应用程序都只满足于CRUD应用程序模式;然而开发人员发现,生成的应用程序构件可以很容易地重用、定制和扩展。当scaffolding应用程序的组件符合行业最佳实践时,这一点尤其正确。
CRUD应用程序绑定到一个域模型,作为scaffolding引擎引入,领域模型可以以多种形式存在,Spring Scaffolding向导支持使用Java bean、JPA实体、数据库表和Spring DSL domain Objects作为输入。scaffolding的输出是一个使用Spring MVC、Spring web Flow、JavaServer Faces (JSP 2.0)、Adobe Flex、Google web Toolkit (GWT)和/或iPhone web客户端实现的web应用程序。
MyEclipse Spring CRUD scaffolding
2.1 Spring MVC
Spring MVC是一个来自Spring创建者的web框架,虽然它不是唯一基于spring的web框架,但它是最常用的web框架之一。
Spring MVC支持多种实现web层的方法,Spring 2.5增加了对基于注解的编程模型的支持。基于注释的方法已经迅速成为使用Spring MVC的主要方式,并且通常被认为是Spring MVC开发中的最佳实践,MyEclipse的scaffolding函数使用基于注释的编程模型生成web层。
2.2 Spring WebFlow
Spring Web Flow是Spring的一个项目,用于简化Web应用程序的开发。虽然Spring Web Flow与Spring MVC兼容,但Spring Web Flow使用流而不是控制器来实现应用程序的Web层。由于Spring Web Flow具有管理应用程序状态的能力,因此它最适合于最终用户执行的活动跨越多个页面请求的情况;所有页面都需要被视为一个工作单元。
Flows是在应用程序中完成任务的一组相关步骤,使用Spring Web Flow的一些好处是:
- 基于XML的流定义 - 应用程序的流是用XML定义的,实现流不需要自定义Java。
- 表达式语言支持 - 表达式语言允许用户利用web应用程序其他层的逻辑,开发人员通常会将逻辑放入不由Spring Web Flow处理的控制器中,这些逻辑可以使用表达式语言用XML表示。
- 状态管理 - 变量可以限定作用域(支持多种作用域),Spring Web Flow在变量超出作用域时自动处理这些变量的清理。
- 流逻辑的模块化 - 流可以从其他流中重用。
Flow负责编排任务(步骤)并支持与任务关联的用户事件,与基于mvc的方法(为实现会话创建一个或多个控制器和多个请求处理程序)不同,您可以使用Spring Web Flow定义带有状态和表达式的流。与定义请求映射的基于mvc的方法不同,您可以使用Spring Web Flow定义事件。Spring Web Flow还允许您轻松地将处理用户事件的逻辑(根据事件id)与针对特定状态的预加载逻辑(根据条目)分离开来。
2.3 JavaServer Faces (JSF 2.0)
JavaServer Faces (JSF)是一个标准化的、基于组件的、事件驱动的web框架,用于为Java web应用程序构建用户界面。它的目标是使用基于xml的视图模板语言简化用户界面的开发,这种语言可以很容易地与Java开发人员编写的后端代码集成。Primefaces是JSF 2.0的组件库,它提供了一组丰富的UI组件,可以很容易地与JSF一起使用。
2.4 Adobe Flex
Adobe Flex是一个免费的开源开发工具包,用于构建富互联网应用程序(RIA),通过利用Adobe®Flash®Player和Adobe AIR®运行时,RIA可以在所有主流浏览器、桌面和操作系统上一致部署。Spring-Flex BlazeDS Integration是一个顶级的Spring项目,其目的是使Adobe Flex应用程序与基于Spring的软件组件的集成变得更加容易。
2.5 Google Web Toolkit (GWT)
Google Web Toolkit (GWT)是一个软件开发工具包,用于构建在HTML/JavaScript浏览器中运行的富互联网应用程序。GWT的目标是通过使用Java实现应用程序,从而简化富AJAX应用程序的开发,这些应用程序最终被编译为JavaScript应用程序。
支持Spring的MyEclipse的scaffolding功能包括两个GWTrecipes。
- GWT 2.0
- GWT 2.1+
2.6 iPhone
iPhone web client是一款适用于iPhone浏览器的web应用程序,该应用程序的基础是一个Spring MVC客户端,其中使用iWebKit生成JSP页面,使应用程序具有iPhone的外观和感觉。
篇幅有限,更多内容持续关注,下期见~