WebX3框架(2)

Webx3 是阿里巴巴内部开发使用的Java Web框架,开源也比较成熟,Webx 3.0和Spring MVC一样,完全建立在
Spring框架之上,支持Generic、Annotation,Webx 3.0对Spring做了扩展,Spring Bean不再是“bean”,而是升级成“组件”,一个组件可以扩展另一个组件,也可以被其它组件扩展。


Webx框架本身可以划分成三个大层次:SpringExt、Webx Framework、Webx Turbine。

SpringExt:基于Spring,提供扩展组件的能力。它是整个框架的基础。
Webx Framework:基于Servlet API,提供基础的服务,例如:初始化Spring、初始化日志、接收请求、错误处理、开发模式等。Webx Framework只和servlet及spring相关 —— 它不关心Web框架中常见的一些服务,例如Action处理、表单处理、模板渲染等。因此,可以用Webx Framework来创建多种风格的Web框架。
Webx Turbine:基于Webx Framework,实现具体的网页功能,例如:Action处理、表单处理、模板渲染等。


Webx3的层次化结构,让框架十分灵活,Web系统可以使用全部的Webx框架,也可以只使用部分的Webx框架,可以由系统来制定。
Webx3的容器结构:

WebX3框架(2)_第1张图片
 

初始化过程:

WEB-INF/web.xml——>LogConfiguratorListener——>WEB-INF/logback.xml——>WebxContextLoaderListener——>WEB-INF/common/aaa.xml——>WEB-INF/webx-*.xml——>WEB-INF/common/aaa.xml
Webx3采用filter而不是servlet来处理请求:web.xml将/*映射给filter,每添加一种新类型的URL,都不需要修改web.xml
同时对于webx所不能处理的请求(如静态页面、图片等),可以“退还”给servlet engine。


Webx中的Pipeline流程机制,可以定制处理的流程如下图:


WebX3框架(2)_第2张图片
在pipeline.xml中可以使用:
循环
<while> - 有条件循环
<loop> - 无条件循环
选择分支
<if> - 单分支
<choose><when><otherwise> - 多分支
中断
<break> - 无条件中断
<break-if>、<break-unless> - 有条件中断
<exit> - 无条件退出整个pipeline(结束所有的嵌套层次)
异常捕获
<try-catch-finally> - 类似Java中的try-catch-finally结构
嵌套
<sub-pipeline> - 创建嵌套的子pipeline。
等控制处理流程

 

 Webx3的请求处理序列图:


WebX3框架(2)_第3张图片
 

 

 

你可能感兴趣的:(spring,框架,Web,xml,servlet)