Webx是一套基于Java Servlet API的通用Web框架。它在Alibaba集团内部被广泛使用。从2010年底,向社会开放源码。
Webx框架是一个稳定、强大的Web框架。建立在SpringExt的基础上,具有超强的扩展能力。你可以使用全部的Webx,也可以使用部分Webx。你也可以比较容易地用SpringExt做出自己的可扩展组件。
Webx的优势
成熟可靠性
Webx在阿里巴巴和淘宝用了很多年。对于这种超大访问量的电子商务网站,Webx经受了考验,被证明是成熟可靠的。
开放和扩展性
- 对Spring的直接支持 —— Spring是当今主流的轻量级框架。Webx 3.0和Spring MVC一样,完全建立在Spring框架之上,故可运用Spring的所有特性。
- 扩展性 —— Webx 3.0对Spring做了扩展,使Spring Bean不再是“bean”,而是升级成“组件”。一个组件可以扩展另一个组件,也可以被其它组件扩展。这种机制造就了Webx的非常好的扩展性,且比未经扩展的Spring更易使用。
- 开放性 —— Webx被设计成多个层次,层次间的分界线很清晰。每个层次都足够开放和易于扩展。你可以使用全部的Webx,也可以仅仅使用到Webx的任何一个层次。
框架设计理念
框架的本质就是"扩展". 一个软件框架必须符合以下要素:
- Inversion of Control. 控制反转. [应用的流程不是由应用控制, 而是由框架控制.]
- Default Behavior. 默认行为. [框架会定义一系列默认的行为]
- Extensibility. 扩展性. [应用可以扩展框架的功能, 也可以修改框架的默认行为.]
- Non-modifiable Framework Code. 框架自身的代码不可更改. [框架可扩展, 但不需要改变原本的代码]
一个Web框架的好坏, 往往不是由它所实现的具体功能的好坏决定的, 而是由其所用的基础框架的好坏决定的. Webx建立在SpringExt的基础上, SpringExt是对Spring的扩展. 没有损失任何Spring的功能, 但能提供比Spring自身更强大的扩展能力.
设计良好的模块, 应该是层次化的.
- 上层定义规则, 下层定义细节. 上层是抽象的, 下层是具体的.
- 越上层, 越稳定(少改变). 越下层, 较易变.
- 依赖倒转: 下层依赖于上层, 具体依赖于抽象, 而不是上层依赖下层.
- 开闭原则: 下层扩展上层时, 不需要修改上层的任何代码和配置.
- 每一层均可被替换.
Webx鼓励层次化的模块设计, 而SpringExt提供了创建和配置层次化组件的机制.
设计一个层次化的组件, 可以从下面几方面来考虑.
- 切分功能. 每个组件专心做一件事.
- 分析哪些会变, 哪些不会变. 不变的部分固化在组件中, 可能会改变的部分抽象成接口, 以便扩展.
- 考虑默认值和默认扩展. 默认值和默认扩展应该是最安全, 最常用的选择. 对于默认值和默认扩展, 用户在使用时不需要额外的配置.
Webx的层次
参考文献
时间: 2024-09-30 11:04:22