摘 要:阐述了以J2EE(JSP、JavaBean、Servlet)、SSH(Struts、Spring、Hibernate)开源框架为核心技术,逐步构建软件架构原型,构建系统原型作为系统开发的基础,提出了基于Struts、Spring和Hibernate框架的轻型J2EE软件架构技术的系统设计和开发方法。
关键词:J2EE;Struts;Spring;Hibernate;架构
System Design and Appliacation Based on Struts+Spring+Hibernate
Abstract: The paper illustrates J2EE(JSP、JavaBean、Servlet) combines SSH(Struts,Spring and Hibernate) open-source frameworks together to its structure, reusability and maintainability, and the development method of a project that is based on the structure.
Key words: J2EE; struts; spring; hibernate; structure
1 前言
J2EE(Java 2 Enterprise Edition即Java 2 平台企业版)是由Sun公司主持推出的一项中间件技术。EJB (Enterprise JavaBean)是J2EE技术的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。但由于EJB的复杂性,导致程序的开发效率低。在Spring和Hibernate等轻量级框架出现后,大量的开发人员转向到以目前最流行的开源框架,能快速开发出结构清晰、可重用性好、维护方便的轻量级的J2EE企业系统应用。
2 Web应用的分层分析
构架Web企业系统应用时需要考虑用户交互、处理业务逻辑、应用数据持久化、扩展性等很多问题,所以一个应用的架构方案和实现技术选择十分重要。而分层的目的就是对应用的逻辑功能进行划分,使每层在完成自己功能的同时,不影响其它层,实现“高内聚,低耦合”具有易于控制、扩展、维护的优点,图1是一个典型的轻量级J2EE应用架构,Web应用分层结构基本上都分为三层:表现层、业务逻辑层、数据持久层。
表示层用来处理用户和软件之间的交互,它主要的责任是向用户展现信息以及处理用户请求。业务逻辑层,又叫做领域逻辑层。其职责包括处理业务逻辑和存储业务数据,校验从表示层传过来的数据,通过表示层提交的命令来执行相应的业务逻辑。数据持久层是用来存取业务状态数据的。数据持久层通过与其他系统进行通信来完成应用的调用。其职责包括事务监控、消息系统、数据源等。在大多数的系统应用中,数据持久层最基本的功能就是存储持久化数据到数据库中。
三层体系结构图中箭头所示的方向,表示各个层之间的数据调用和依赖关系。这个依赖暗示了分层系统的特性规则:一层中的组件只能与同一级别中的对等实体或较低级别中的组件交互。可以看到,业务逻辑层不会访问表示层中的内容,同样,数据层也不会访问业务逻辑中的内容。这个规则使得在同一个基础架构上实现不同的表示层成为可能,同时使得表示层的修改并不会影响到更深层次的实现。
3 Struts框架分析
Struts最早是由Xerox(施乐)在20世纪80年代为Smaltalk-80语言发展提出的。随后,它成为了一种著名的用户界面设计架构,其实现原理如图2。
Struts框架为Web应用提供了一个通用的框架,正因为它把应用分成了三部分:视图、控制器、模型。Struts有其自己的控制器(Controller),同时整合了其他技术去实现模型层(Model)和视图层(View)。在模型层,Struts可以很容易的与数据访问技术相结合,包括EJB,JDBC和Object Relation Bridge。在视图层,Struts能够与JSP,Velocity Templates,XSL等等这些表示层组件想结合。