zoukankan      html  css  js  c++  java
  • Webx框架:Spring Schema 和 Spring Ext

    webx诞生的原因是当时市面上没有好用的web框架。如今的Web框架有非常多。然后它们背后的思想都是相似的,并且越来越趋同。


    Spring Schema

    在传统的spring中,配置bean时须要手动去指定详细的实现类是什么。參数有哪些。这样开发人员须要记住详细的实现类、參数名称、含义等,会带来非常大的记忆负担。为了解决问题。SpringSchema出现了。它的解决的方法是将全部的參数转换成标签。标签是能够通过XML Schema定义的。这样仅仅须要记忆标签的名字就可以。

    标签的名称一般都非常短,因此减轻了开发人员的负担。


    在传统的Spring中。可能一个组件须要像以下这样配置。它使用了property、map、entry等标签,这些标签都不是重点,重点在于name、key、value-ref这些属性。

    <bean id="resourceLoadingService" class="com.alibaba...ResourceLoadingServiceImpl">
      <property name="mappings">
        <map>
          <entry key="/file" value-ref="fileLoader" />
          <entry key="/webroot" value-ref="webappLoader" />
        </map>
      </property>
    </bean>
    


    为了解决问题。SprintExt引入了Spring Schema。组件的配置就成了以下这样。标签的名称都是重点。

    另一个优点就是。标签的格式能够在XML Schema中定义。能使IDE更加智能。

    <resource-loading id="resourceLoadingService"
    xmlns="http://www.alibaba.com/schema/services/resource-loading">
      <resource pattern="/file">
        <file-loader basedir="${user.home}" />
      </resource>
      <resource pattern="/webroot">
        <webapp-loader />
      </resource>
    </resource-loading>
    


    SpringExt

    SpringExt扩展了Spring Schema。它能让XML文件提供很多其它的扩展性。


    SpringExt中有几个重要的概念:

    • 扩展点:相当于标签的命名空间。

    • 捐献:相当于命名空间的详细实现。
    • 组件:组件能够被别的模块扩展,也能够扩展别的模块。比方ResourceLoadingService就是一个组件,这个在后面还会有介绍。


    Webx容器。它全然兼容Spring的容器,因此语法和Spring全然一样。Webx框架在启动时自己主动载入WEB-INF/webx.xml和WEB-INF/webx-*.xml文件。当中webx-*.xml是子容器,它们都继承了webx.xml。


    日志。日志的配置须要在web.xml中增加一个listener:

    <listener>
      <listener-class>com.alibaba.citrus.logconfig.LogConfiguratorListener</listener-class>
    </listener>
    


    页面驱动。在传统的开发流程中,视觉设计师设计出模板之后无法直接看到效果。须要等到Action代码编写完毕才干看到。

    而页面驱动的理念中,视觉设计师在做完页面之后能够直接看到效果,并且能够在页面中直接使用框架提供的一些工具,比方页面跳转。验证登陆等。webx框架还提供了一系列工具,名为pull tools。它能够在页面中被调用。并且能够按需载入。比方表单的工具就是一种 Pull tools。能够用表单工具推断一个字段是否正确,错误消息是什么。


    规则映射。在webx中,URL首先解析成Target,Target再由Pipeline进行解析。Pipeline解析能够得到模板名。模板名能够是Layout。能够是Module。一个Layout中能够包括Control和Screen。Control能够有多个,Screen仅仅能有一个。Control相当于页面中的一个控件。

  • 相关阅读:
    js 运动框架
    js 去掉字符中两边的空格
    js 去掉字符中所有空格
    vue移动端webview视频轻应用
    vue绑定v-modal布尔值到checkbox后异步,部分手机更新不及时问题
    使用原生js的scrollTop,刷新进入页面定位到某一个dom元素
    会议管理项目总结
    ionic1上拉刷新,下拉加载,安卓问题解决
    jquery $(document).ready() 与window.onload的区别
    vue2+express4图片上传
  • 原文地址:https://www.cnblogs.com/llguanli/p/6955453.html
Copyright © 2011-2022 走看看