初识Webx

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的层次

参考文献

http://www.openwebx.org/

时间: 2024-09-30 11:04:22

初识Webx的相关文章

初识Webx 2

初识Webx 1: http://www.cnblogs.com/lddbupt/p/5547189.html Webx Framework负责完成一系列基础性的任务. 比如系统初始化和响应请求. 系统初始化: 初始化Spring容器, 初始化日志系统. 响应请求: 增强request/response/session的功能, 提供pipeline流程处理机制, 异常处理, 开发模式. Webx Framework提供了一个可剪裁.可扩展的处理WEB请求基本框架.它所提供的基本功能事实上是每个W

webx学习

webx学习(一)——初识webx webx学习(二)——Webx Framework webx学习总结(一)——使用webx框架实现简单的登录功能 webx学习(三)——Webx Turbine webx学习(四)——ResourceLoadingService webx学习(五)——webx页面布局相关 webx学习(六)——Request Contexts webx学习(七)Pipeline服务 webx学习(八)Request Contexts详解 webx学习总结(二)——使用webx

初识Python,望君多多关照

在学习Python之前,我们接触过数据结构和网页制作.前者让我们学习如何把C语言运用的更加整齐规范,而后者让我们亲身学习如何运用所学,制作一个静态网页.通过这些课程的学习,让我对C语言产生了比较大的压力,以至于对编程.对这学期的Python课程都有一种如临大敌的感觉. 但是真的学习了这门课程,体会了编码过程中的一些固定运用方法和套路之后,也许过程中对这门课程隐隐约约产生了一点点朦胧的感觉,仿佛他也并没有想象中的那么困难,起码现在的学习让我认为,他可能没有C语言那么繁琐和麻烦.当然,以一个初学者的

初识数组排序!!!!

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>初识数组排序</title> <!--调试成功--> <style type="text/css"> *{ padding:0; margin: 0; } li,ul{ list-style: none; } #p

初识操作系统和linux

初识操作系统和linux 1.计算机系统由硬件系统和软件系统两大部分组成:是一种能接收和存储信息,并按照存储在其内部的程序对海量数据进行自动.高速地处理,然后把处理结果输出的现代化智能电子设备. 2.世界上第一台计算机是1946年诞生在美国宾州大学. 3.冯·诺依曼体系结构:1946年数学家冯·诺依曼于提出计算机硬件系统由运算器.控制器.存储器.输入设备.输出设备.摩根定律:当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍.现在计算机技术进本很难遵

JAVA 初识类加载机制 第13节

JAVA 初识类加载机制 第13节 从这章开始,我们就进入虚拟机类加载机制的学习了.那么什么是类加载呢?当我们写完一个Java类的时候,并不是直接就可以运行的,它还要编译成.class文件,再由虚拟机解释给当前的操作系统去执行.这些过程都是我们看不见的,我们能看见的也就是一个.class文件.既然虚拟机要解释这些.class文件给当前的操作系统听,那么他怎么获得这些.class文件呢?虚拟机获得这些.class文件的过程就是类加载了. 所以,总结来说就是:虚拟机将.class文件从磁盘或者其他地

初识React

原文地址:北云软件-初识React 专注于UI 在MVC分层设计模式中,react常被拿来实现视图层(V).React不依赖于技术栈的其他部分,因此可以方便的在现有项目中尝试用它来实现一个小特性. 虚拟DOM React从DOM中抽象出来,给出一种更简洁的编程模型,且性能表现更好.能够通过NodeJS实现服务端渲染,通过React Native开发原生app. 数据流React实现单向.响应式数据流,减少boilerplate且比传统数据绑定更容易理解. 简洁的组件React的组件都实现了一个r

泛型的几种类型以及初识webform

今天学习的可以分为两类吧,但是学习的都是比较抽象的,不太容易掌握吧.首先我们大部分时间学习了泛型,泛型的委托,泛型接口以及枚举器,迭代器,扩展方法:最后简单的认识了webform,实现了一个简单的功能. 一.泛型 定义:泛型(generic)可以软糖多个类型共享一组代码,泛型允许我们声明类型参数化.可以用不同的类型进行实例化,说白了,就是可以用类型占位符,创建具体类型致命的真实概念.C#中提供了五种泛型,类,结构,接口,委托和方法.下面举例说明可能更容易理解, class MyStack<T>

最新计算机技术与管理科学应用专家——初识ERB

ERB管理系统:英文全称Enterprise Resource and Behavior,英文简称:ERB,中文名全称:企业资源与行为管理系统.ERB是由理文企业管理顾问有限公司首席管理师,现任商翼ERB企业管理系统项目总监吴志华先生,于2010年9月首先提出的.ERB不再单以供应链管理作为系统应用的基础,而是以企业行为与企业资源规划的最佳结合作为系统应用设计的核心基础,强调企业行为的规划.执行.监督与追溯,强调企业管理水平与员工素养的持续提升:提供企业行为与企业资源管理最佳结合的整体应用解决方