在上文中(点击这里回顾>>),主要为大家介绍了CRUD Scaffolding,本文将继续介绍应用程序的分层、代码助手等。
3. 应用程序的分层
应用程序分层是应用程序开发领域中非常常见的体系结构方法,应用程序分层包括将应用程序代码划分为在应用程序中具有不同职责的离散层,并且每个层都与其他层隔离。下图显示了web应用程序中最常见的应用层:
Spring框架支持构造型注释,它指定任何带注释的Java类的层/角色,并且注释允许自动检测类。接下来的几节将简要介绍每一层,并描述每一层的相关Spring原型。
由于应用程序分层很流行,并且有Spring框架的直接支持,因此MyEclipse提倡使用应用程序分层,并围绕应用程序分层组织其代码生成/搭建功能。
3.1 Web层
web层也被称为UI层,web层主要关注呈现用户界面和应用程序的操作(处理用户交互/事件)。虽然web层也可以包含逻辑,但核心应用逻辑通常位于服务层。
关于web层的实现有很多选择,至于MyEclipse,一些web层实现可能与Spring没有直接关系,但是它们可以与Spring服务层和数据访问层集成。
下面是一些web层的例子(也恰好是MyEclipse for Spring搭建的):
- Spring MVC – JSP和Spring控制器(@Controller)
- Spring Web Flow – JSP和Spring flow (xml)
- JavaServer Faces
- Adobe Flex – Adobe Flex专用;不涉及Spring web
- Google Web Toolkit (GWT) –HTML / Javascript;AJAX
3.2 业务层
服务层(也称为逻辑层或业务层)表示正在构建的应用程序的核心功能。web层是服务层提供功能的主要消费者,Spring框架利用@Service注释来指定服务层组件。除了帮助组织应用程序逻辑之外,使用服务层的另一个好处是可以使用其他接口公开它。例如,如果应用程序逻辑需要对其他应用程序可用,则可以使用JAX-WS将其公开为web服务。如果web层是AJAX应用程序,则可以使用DWR将服务公开为JavaScript/JSON服务。
3.3 领域层
领域层由领域模型表示,领域模型是一组不同的相互关联的应用程序对象,这些对象体现了正在构建的系统功能和特征。在web应用程序中,这通常由Java bean (POJO)和/或JPA实体组成,Spring组件构造型(@Component)也是将由Spring框架管理的非实体bean。
3.4 数据访问层
数据访问层处理域模型与数据库(或其他一些持久化机制)之间的持久化,Spring存储库构造型(@Repository)适用于将要处理持久性的类。
4. 代码助手
代码助手是指MyEclipse中的一组功能,用于帮助开发人员进行日常开发活动。第一组代码助手是注释器,虽然大多数JAVA开发人员都理解JAVA注释的技术用法,但并不总是清楚哪些注释可用于特定技术以及何时应该使用特定注释。例如,Spring框架对基于注释的编程有很好的支持;但是有很多支持的注解。有些注解适用于所有Spring原型,而其他注解只适用于特定的原型。注释器通过帮助开发人员了解哪些注释是可用的以及应该在什么上下文中使用注释来支持基于注释的开发。
有关注释器的更多信息,请参见Spring Annotators, JAX-WS Annotators 和JPA Annotators。
代码助手
篇幅有限,更多内容持续关注,下期见~