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相当于页面中的一个控件。

时间: 2024-12-05 19:08:24

Webx框架:Spring Schema 和 Spring Ext的相关文章

Spring框架[一]——spring概念和ioc入门(ioc操作xml配置文件)

Spring概念 spring是开源的轻量级框架(即不需要依赖其他东西,可用直接使用) spring核心主要两部分 aop:面向切面编程,扩展功能不是修改源代码来实现: ioc:控制反转,比如:有一个类,在类中有个方法(非静态的方法),要调用类中的这个方法,则需要创建类的对象,使用对象调用方法.创建类对象的过程,需要new出来对象:而ioc则是将对象的创建不是通过new方式实现,而是交给spring配置来创建对象(即,将对象的创建交给spring来管理): spring是一站式框架 spring

【Spring】浅析Spring框架的搭建

目录结构: contents structure [-] Spring是什么 搭建Spring框架 简单Demo 1,建立User类 2,建立Test类 3,建立ApplicationContext文件 参考文章 Spring是什么 Spring是一个容器框架,用于配置bean并且维护bean之间关系的框架. Spring的结构图: 搭建Spring框架步骤 下载Spring开发包,Spring-4.3.4完整开发包下载. 在JavaProject下面建立一个lib目录,将开发包下面的libs目

spring schema自定义

今天看了一下分布式服务框架的那本书,于是里面提到了spring schema的自定义,于是去简单的了解了一下 参考资源:spring schema扩展: http://www.yihaomen.com/article/java/438.htm schema定义:http://www.w3school.com.cn/schema/schema_schema.asp spring schema扩展:http://blog.csdn.net/cutesource/article/details/586

Spring.Net框架二:配置Spring.Net框架环境

一.下载DLL文件 去Spring的官方网站下载并解压,然后直接添加dll文件的引用就可以了.在上一篇文章中,已经介绍过Spring.Net框架中需要使用到的dll文件.这些程序集文件位于Spring.NET-1.3.1\Spring.NET\bin\net\4.0\debug或Spring.NET-1.3.1\Spring.NET\bin\net\4.0\release中. 二.编程方式的容器 在Spring.Net中,对于通过编程方式使用容器的环境,提供了Spring.Context.Sup

框架-------(二)Spring和SpringMVC框架(序列一初始原理概念)

1.什么是Spring? Spring是个java企业级应用的开源框架.Spring主要目标就是简化开发,并通过pojo为基础的编程模型促进良好的编程习惯. 2.为什么要使用Spring框架 它是轻量级的开源框架,基本的版本大约2MB. 控制反转IOC:Spring通过控制反转实现了松散耦合,对象们给出他们的依赖,而不是直接创建或者查找依赖的对象. 面向切面编程:AOP,Spring支持面向切面编程,应用业务逻辑和系统服务分开. 容器:Spring包含并管理应用中对象的生命周期和配置 MVC框架

springsecurity启动出现org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: You must use a 3.0 schema with Spring Security 3.0.

在换了spring-security的jar包以后启动出现org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: You must use a 3.0 schema with Spring Security 3.0.Please update your schema declarations to the 3.0.3 schema (spring-securi

Spring.net(一)----Spring.NET框架简介及模块说明

简介:    Spring.NET框架包括很多功能,Spring.NET 1.0包括完整的IoC容器和AOP类库.1.1版加入Web.ORM和数据模块.Spring.NET的下载包中并不包含与其它类库(如NHibernate,TIBCO EMS,Anthem,和IIOP.NET)集成的模块,如果需要您可以单独下载. Spring Framework天生丽质,因为其先进的架构和对一系列前沿开发思想的集成,使它从一产生就深得开发者欢迎,它将设计模式运用到了炉火纯青的地方,它的幽雅和魅力征服了许多JA

JAVA框架整合(struct+spring+jpa)之utf8mb4

基于mysql数据库整合框架时出现的数据库字符编码的问题. 解决办法:数据库驱动的版本太高,换成低版本的,主要还是你的架包太不是最新版本,出现的兼容性问题. JAVA框架整合(struct+spring+jpa)之utf8mb4,布布扣,bubuko.com

java框架整合例子(spring、spring mvc、spring data jpa、hibernate)

这是自己参考springside开源项目整合的框架,主要整合了spring.spring mvc.spring data jpa.hibernate这几个框架,对于这几个框架其中感觉比较舒服的还是spring data jpa这个框架,这个框架在写dao类的时候,只需要写一个接口声明,spring data jpa会自动的实现其实现类,使用起来比较方便,至于详细的使用方法还请自己百度吧,因为我也不清楚.个人感觉还有一个比较不错的地方就是能够打印sql语句,都知道hibernate打印的sql语句