摘自:http://www.openwebx.org
Webx是一套基于Java Servlet API的通用Web框架,在阿里巴巴集团内部被广泛使用。
Webx 3.0是以springext为基础,基于“组件”思想的框架,目前缺少的功能:只支持服务端的表单验证而没有直接支持客户端的js验证,没有直接支持ajax编程,没有直接支持rest编程,没有直接支持web flow。
层次化的概念:
--上层定义规则,下层定义细节;
--上层是抽象的,下层是具体的;
--越上层,越稳定;越下层,越易变;
--依赖倒转,下层依赖上层,而不是上次依赖下层;
--下层扩展上层时,不需要修改到上层的任何代码和配置;
--每一层均可被替换;
--切分功能,每个组件只专心做一件事;
--分出哪些会变,哪些不会变。不变的固化在组件中,可能会变得的抽象成接口,以便扩展;
--默认值和默认扩展是值得考虑的,也容易被忽视,因为默认值和默认扩展是最安全、最常用的选择。
Webx鼓励层次化的模块设计,而SpringExt提供了创建和配置层次化组件的机制。
既可以使用全部的Webx框架,也可以只使用部分的Webx框架。
Webx的三个层次分别是:SpringExt、Webx Framework、Webx Turbine
1. SpringExt:基于Spring,提供扩展组件的能力,它是整个框架的基础。
2. Webx Framework:基于Servlet API,提供基础的服务,例如:初始化Spring、初始化日志、接收请求、错误处理、开发模式等。
3. Webx Turbine:基于Webx Framework,实现具体的网页功能,例如:Action处理、表单处理、模板渲染等。
正因为Webx的分层模式,可以使用SpringExt去搭建一个非web工程,也可以使用非Webx框架和SpringExt一起搭建web工程,当然也可以使用Webx Framework一步搭建web工程,或者在Webx的基础上自己定制Turbine