Webx是什么?

Webx是一套基于Java Servlet API的通用Web框架。它在Alibaba集团内部被广泛使用。从2010年底,向社会开放源码。

Webx的发展历史

  • 2001年,阿里巴巴内部开始使用Java Servlet作为WEB服务器端的技术,以取代原先的Apache HTTPD server和mod_perl的组合。

  • 2002年,选择Jakarta Turbine作为WEB框架,并开始在此之上进行扩展。

  • 2003年,经过大约一年的扩展,框架开始成熟。我们私下称这个经过改进的Turbine框架为Webx 1.0。

  • 2004年,借着淘宝网的第一次改版,我们正式推出了Webx 2.0。由于Turbine开源项目发展过于缓慢,我们不得不放弃它。Webx 2.0是从零开始完全重写的,仅管它仍然延续了Turbine的使用风格。

  • 2004年11月,Webx 2.0和Spring框架整合。

  • 从那以后,Webx 2.0一直在进化,但没有作根本性的改动。

  • 2010年,Webx 3.0发布。Webx 3.0抛弃了Webx 2.0中过时的、从Turbine中发展而来的Service框架,直接采用Spring作为其基础,并对Spring作了重大改进。Webx 3.0完全兼容Webx 2.0的代码,只需要修改配置文件就可完成升级。

  • 2010年底,Webx 3.0开源。

Webx的优势

成熟可靠性

这个优势主要是针对阿里巴巴及属下网站而言。因为Webx在阿里巴巴和淘宝用了很多年。对于这种超大访问量的电子商务网站,Webx经受了考验,被证明是成熟可靠的。

开放和扩展性

  • 对Spring的直接支持 —— Spring是当今主流的轻量级框架。Webx 3.0和Spring MVC一样,完全建立在Spring框架之上,故可运用Spring的所有特性。

  • 扩展性 —— Webx 3.0对Spring做了扩展,使Spring Bean不再是“bean”,而是升级成“组件”。一个组件可以扩展另一个组件,也可以被其它组件扩展。这种机制造就了Webx的非常好的扩展性,且比未经扩展的Spring更易使用。

  • 开放性 —— Webx被设计成多个层次,层次间的分界线很清晰。每个层次都足够开放和易于扩展。你可以使用全部的Webx,也可以仅仅使用到Webx的任何一个层次。

1.1.1基础框架

Webx建立在SpringExt的基础上 —— SpringExt是对Spring的扩展。Spring是当今主流的轻量级框架。SpringExt没有损失任何Spring的功能,但它能够提供比Spring自身更强大的扩展能力。

1.2. Webx的层次

1.2.1. 三个大层次

很多用过Webx框架的人说起Webx,就想到:Webx如何处理页面、如何验证表单、如何渲染模板等等功能。事实上,这些只不过是Webx最外层、最易变、非本质的功能。

Webx框架不仅鼓励层次化设计,它本身也是层次化的。你既可以使用全部的Webx框架,也可以只使用部分的Webx框架。大体上,Webx框架可以划分成三个大层次,如图所示。

    1. SpringExt:基于Spring,提供扩展组件的能力。它是整个框架的基础。

    2. Webx Framework:基于Servlet API,提供基础的服务,例如:初始化Spring、初始化日志、接收请求、错误处理、开发模式等。Webx Framework只和servlet及spring相关 —— 它不关心Web框架中常见的一些服务,例如Action处理、表单处理、模板渲染等。因此,事实上,你可以用Webx Framework来创建多种风格的Web框架。

    3. Webx Turbine:基于Webx Framework,实现具体的网页功能,例如:Action处理、表单处理、模板渲染等

最新文章

  1. html xml
  2. (一)css代码积累——自己经常忘记,但是总记不住的代码
  3. vs2008与windbg的使用
  4. MRP运算生成采购单时间的逻辑
  5. 全排列 (codevs 1294)题解
  6. PHP利用socket_bind函数切换IP地址采集数据
  7. C#中Action和Func的使用
  8. POJ3279 Fliptile 枚举+简单搜索
  9. ORACLE VS MYSQL
  10. Spring MVC 的环境搭建和入门小程序
  11. 看完48秒动画,让你不敢再登录HTTP网站(附完整示例代码)
  12. Simple Validation in WPF
  13. hadoop2.6.0实践:A02 问题处理 util.NativeCodeLoader: Unable to load native-hadoop library for your platform
  14. JS动态创建元素
  15. No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer
  16. linux下安装mysql简单步骤
  17. js闭包之应用场景
  18. 自动化运维工具 SaltStack 搭建
  19. SQL Server 各版本安装包分享
  20. VMware安装Ubuntu

热门文章

  1. HDU5692(线段树+dfs序)
  2. Java内存回收优化及配置
  3. 【js 编程艺术】小制作二
  4. [html5] 学习笔记- html拖放
  5. 蓝桥网试题 java 入门训练 Fibonacci数列
  6. Vue框架Element的事件传递broadcast和dispatch方法分析
  7. C语言 extern学习1
  8. 警惕Dictionary和SortedDictionary的顺序陷阱
  9. select中的文字垂直居中的问题
  10. JS批量替换内容中关键词为超链接,避开已存在的链接和alt、title中的关键词