webx3的总体架构以及特性、快速入门配置

Webx3-介绍和开发实战

Webx2 特点
    Webx2 架构比较复杂
    两套容器混合 – Service容器&Spring容器
    跨容器注入难度大
    Xml 配置较为复杂
    开发较为复杂,难度较大
    简化架构
    简化Web 容器, 去掉 Service 容器
    敏捷开发
    减少机械和粘合代码
    降低开发复杂度
    简化容器Xml配置
    兼容性
    对网站向后兼容,改良式升级
    中文站,国际站,淘宝

webx3的总体架构以及特性、快速入门配置_第1张图片

webx3的总体架构以及特性、快速入门配置_第2张图片

二、Webx3总体架构
webx3的总体架构以及特性、快速入门配置_第3张图片

WEBX 3.0简介
What’s New?

主流化
基于Java5,框架本身支持Generic、Annotations
基于Spring框架
基于POJO/依赖注入编程
增强特性
基于XML Schema的配置文件
使Spring配置文件易读、易写
以组件的思维来扩展系统
生产模式/开发模式
保留Webx2中的优点
页面驱动
先建模板、再建程序
模板中“按需”取得工具对象(pull tools)
约定胜于配置
基于规则展示页面
screen/layout/control

比较:
Spring context成为一等公民,取消Service框架
Context结构完全同Spring MVC,两层结构,大为简化
子容器中的bean可取得root context中的对象
在Spring context中创建webx2 service context adapters,完全兼容webx2
取消Singleton Service Context,以root context取代其职责。
Adapter将所有对Singleton Service Context的调用全部转向root context。


Webx3架构变化总揽

webx3的总体架构以及特性、快速入门配置_第4张图片

三、Webx3 快速入门
Webx3 核心开发概念

1  Model 
    基本类型:String,int,long
    复合类型: JavaBean
    集合类型: List, Array
2. View
    模板 Velocity
    Layout
3. Controller
    Screen/Action/Ctronol
    映射规则同 Webx2.x
webx3的总体架构以及特性、快速入门配置_第5张图片
webx3的总体架构以及特性、快速入门配置_第6张图片
webx3的总体架构以及特性、快速入门配置_第7张图片
代码篇:

1. 绑定环境变量
    void doGetRundata(TurbineRunData rundata)
    void doGetNavigator(Navigator nav)
    void doGetContext(Context context)
    void doGetRequestContext(RequestContext requestContext)
2.绑定Query参数
  基本类型及数组
  JavaBean及数组
    void doGetInt(@Param("aaa") int i)
    void doGetIntDefault(@Param(name = "aaa", defaultValue = "123") Integer i)
    void doGetIntArray(@Param("aaa") int[] i)
    void doGetIntegerArrayDefault(@Param(name = "aaa", defaultValues = { "123", "456" }) Integer[] i)
    void doGetIntegerList(@Param("aaa") List i)
3.绑定FromService
    基本类型及数组
    JavaBean及数组
    校验失败是否不进入
    3.1 Form
        void doGetFormDefaultAnnotation(@FormData Form form)
        void doGetFormDontSkipAction(@FormData(skipIfInvalid = false) Form form)
    3.2 Group
        void doGetGroup(@FormGroup("myGroup1") Group group)
        void doGetGroupInstanceBean(@FormGroup(name = "myGroup1", instanceKey = "aaa") MyData data)
        void doGetGroupsBeansDontSkipAction(@FormGroups(name = “myGroup1”,skipIfInvalid = false),  Collection data)
    3.3 Field
        void doGetField(@FormField(name = "field1", group = "myGroup1") Field field) 

webx3的总体架构以及特性、快速入门配置_第8张图片
webx3的总体架构以及特性、快速入门配置_第9张图片

webx3的总体架构以及特性、快速入门配置_第10张图片
四、Webx3 架构新特性
配置篇
统一Spring容器

    只用 Spring 配置文件
     webx.xml
     pipeline.xml
     webx-*.xml
     uris.xml
    …
组件
    WebxContextLoaderListener
    装载/WEB-INF/webx.xml, /WEB-INF/webx-*.xml
    WebxFrameworkFilter
    拦截request,以便被webx容器处理
    LogConfiguratorListener
    初始化日志系统
服务Bean
    services:resource-loading
    services:request-contexts
    services:mapping-rules
    services:template
    services:pull
    services:data-resolver
    services:pipeline
    services:uris
Webx3 配置文件对比
webx3的总体架构以及特性、快速入门配置_第11张图片

Webx3 服务配置
1 RequestContext


    xmlns="http://www.alibaba.com/schema/services/request-contexts">
       
       
       
       
       
           
               
           

           
               
                   
               

           

           
               
           

       


2 PipeLine.xml

       
       
       
       
       
       
       
       
        
               … Valve 
        

   


    ………
   
           
               

                   
                   
                   
               
 
               
                  
                   
                   
               

               
                   
                   
               

           

        
       

   

3 ModuleLoader

   
       
                            packages="com.alibaba.sample.petstore.web.admin.module.*"
                includeAbstractClasses="true" />
      

       
   

4 PullService

       
       
           
           
           
           
       

       
       
           
           
           
           
           
       

       
       
           
           
       

   

5  MappingRule

      
       
       
       
       
       
       
       
       
       
       
       
       
   

6 DataResolver

   
       
       
       
   

7 Form

       
           
               
                    必须填写${displayName}
               

               
                    产品ID和已有产品冲突
               

           

          services:field name="picture" displayName="产品图片">
               
                    必须上传产品图片
               

                                    contentType="image/gif, image/jpeg, image/pjpeg, image/jpg, image/png">
                    ${displayName}不是合法的图片文件
               
               
                    ${displayName}不能超过${maxSize}字节
               

           
       

   

8 Rewrite

   
    
     
    
     
    

     
    
     
    

     
    
     
    

Webx2.0/2.5 应用基本迁移步骤
1.Webx2/2.5  Webx3迁移指南
2.按指南修改基础配置
3.对应用回归测试
4.修改,重复 步骤3 
5.发布应用
9 兼容2.0 Service

重要:
   对于中文站,国际站自己扩展的 Webx2.0 Service,可以按下面的方式移植:

   
       
                            class="com.alibaba.sample.petstore.DefaultPageAuthorizationService">
               
                    /petstore/${component}/access.xml
               

           

       

   

10 兼容2.0 Valve
重要:
   对于中文站,国际站自己扩展的 Webx2.0 PipeLine Valve,可以按下面的方式移植:

 
         
               “com.alibaba.sample.petstore.web.common.auth.PageAuthorizationValve”/>
  

Spring-schema的扩展

webx3的总体架构以及特性、快速入门配置_第12张图片

1. Spring定义了三种接口,用来将Schema所描述的XML文件转换成
    Spring beans
    Bean Definition Parser
    Bean Definition Decorator
    Bean Definition Decorator for Attribute
    NamespaceHandler
         将XML NS和上述parsers/decorators关联起来;
         Webx 3 实现了此接口,做成了一套及其灵活的schema扩展机制。
2   扩展点(配置点,Configuration Point)
       Webx3定义了一个顶级的扩展点:services,
       Namespace为:“http://www.alibaba.com/schema/services"。
3.  捐献(Contribution)
    对指定扩展点的扩展,例如:“Velocity Engine”
    每个Contribution必须对应一个schema。
    每个Contribution必须对应一个bean definition parser
4.  组件
     可以捐献给指定的扩展点


来自:http://hi.baidu.com/274084093/item/32577a15dbf0cf5bf0090e6b

你可能感兴趣的:(Java,web相关技术)