以下文字和架构图均在本人相关系统设计 和架构方案中有所应用。
?
原文出处:http://space.itpub.net/6517/viewspace-609654
1.Spring 架构图
? Spring 是一个开源 框架,是为了解决企业 应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为J2EE 应用程序开发提供集成的框架。Spring 框架的功能可以用在任何J2EE 服务器中,大多数功能也适用于不受管理 的环境。Spring 的核心要点是:支持不绑定到特定J2EE 服务的可重用业务和数据访问对象。这样的对象可以在不同J2EE 环境(Web 或EJB )、独立应用程序、测试 环境之间重用。
组成Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:
?
2.ibatis 架构图
ibatis 是一个基于 Java 的持久层框架。 iBATIS 提供的持久层框架包括 SQL Maps 和 Data Access Objects ( DAO ),同时还提供一个利用这个框架开发的 JPetStore 实例。
IBATIS :最大的优点是可以有效的控制sql 发送的数目,提高数据层的执行效率!它需要程序员自己去写sql 语句,不象hibernate 那样是完全面向对象的,自动化的,ibatis 是半自动化的,通过表和对象的映射以及手工书写的sql 语句,能够实现比hibernate 等更高的查询效率。
Ibatis 只是封装了数据访问层,替我们做了部分的对象关系映射。但代价是必须要写xml 配置文件,相对于Hibernate 还要写很多sql 。Hibernate 通过工具直接从数据库模式生成实体类和基本的配置文件,而且大部分情况下不需要我们写sql ,会较大的提升开发效率。但这些也有很多的局限性,尤其是对环境的要求较高(数据库设计,对象设计,团队的协作等)。 个人感觉Ibatis 对项目比较有意义的地方在于它小巧灵活,可扩展,封装了数据访问层(事务,缓存,异常,日志),并提供了DAO 框架支持。
利用Ibatis 我们可以做到代码和sql 的分离,只要sql 能够解决的问题,Ibatis 就能帮我们较容易的解决,同时也使我们的项目对某一框架的依赖性变小(因为Ibatis 是非侵入性的)。这将极大的降低项目风险,减少解决复杂问题的时间,使项目的维护变得简单。
Ibatis 对于应用的修改,调试,扩充和维护将会变得容易自然。修改时,我们主要修改的是代表模型的实体对象,xml 配置文件中的sql ,和/ 或配置文件的ResultMap (很多时候是不需要的)。同时,sql 和代码分离,我们不用在代码的StringBuffer 的append 方法之间寻找需要修改的sql 。配置文件中的sql 便利了我们的调试和对sql 的评审及以后的sql 重用。
?
3.structs1 架构图
Struts 是Apache 基金会Jakarta 项目组的一个Open Source 项目,它采用MVC 模式,能够很好地帮助java 开发者利用J2EE 开发Web 应用。和其他的java 架构一样,Struts 也是面向对象设计,将MVC 模式" 分离显示逻辑和业务逻辑" 的能力发挥得淋漓尽致。Structs 框架的核心是一个弹性的控制层,基于如Java Servlets ,JavaBeans ,ResourceBundles 与XML 等标准技术 ,以及Jakarta Commons 的一些类库。Struts 有一组相互协作的类(组件)、Serlvet 以及jsp tag lib 组成。基于struts 构架的web 应用程序基本上符合JSP Model2 的设计标准,可以说是一个传统MVC 设计模式的一种变化类型。
Struts 有其自己的控制器(Controller ),同时整合了其他的一些技术去实现模型层(Model )和视图层(View )。在模型层,Struts 可以很容易的与数据访问技术相结合,如JDBC / EJB ,以及其它第三方类库,如Hibernate / iBATIS ,或者Object Relational Bridge( 对象关系桥) 。在视图层,Struts 能够与JSP ,包括JSTL 与JSF ,以及Velocity 模板,XSLT 与其它表示层技术。
Struts 为每个专业的Web 应用程序做背后的支撑,帮助为你的应用创建一个扩展的开发环境。
?? Client browser (客户浏览器)
来自客户浏览器的每个HTTP 请求创建一个事件。Web 容器将用一个HTTP 响应作出响应。
?? Controller (控制器)
控制器接收来自浏览器的请求,并决定将这个请求发往何处。就Struts 而言,控制器是以servlet 实现的一个命令设计模式。struts-config.xml 文件配置控制器。
?? 业务逻辑
业务逻辑更新模型的状态,并帮助控制应用程序的流程。就Struts 而言,这是通过作为实际业务逻辑“ 瘦” 包装的Action 类完成的。
?? Model (模型)的状态
模型表示应用程序的状态。业务对象更新应用程序的状态。ActionForm. bean 在会话级或请求级表示模型的状态,而不是在持久级。JSP 文件使用JSP 标记读取来自ActionForm. bean 的信息。
?? View (视图)
视图就是一个JSP 文件。其中没有流程逻辑,没有业务逻辑,也没有模型信息-- 只有标记。标记是使Struts 有别于其他框架(如Velocity )的因素之一
?
4.structs2 架构图
Struts 2 相对于Struts 1.X ,将实现用户业务逻辑(Action )同Servlet API 分离开,这种分离机制,是采用了拦截器或者拦截器栈(拦截器链)。拦截器是Struts 2 的核心内容之一。
Struts 2 内建了多个拦截器和拦截器栈(由多个拦截器形成的拦截器链),将用户的Web 请求进行拦截处理,从而提供了更加丰富的功能,例如数据类型转换、国际化、文件上传等。<!-- [if gte vml 1]><v:shape id="_x0000_i1028" type="#_x0000_t75" style='width:362.25pt;height:336.75pt'><v:imagedata src="file:///C:\Users\bq_wang\AppData\Local\Temp\msohtmlclip1\01\clip_image006.png" o:title=""/></v:shape><![endif]--><!-- [if !vml]-->