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相当于页面中的一个控件。
Webx框架:Spring Schema 和 Spring Ext的更多相关文章
- 深入webx框架(li)
目录 1.Webx简介 2.创建webx应用 一.Webx简介 Webx本质上就是一个Web框架,它建立在Java Servlet API基础之上.上图所示是webx的架构图.webx本身类似于s ...
- 【Spring】浅析Spring框架的搭建
c目录结构: // contents structure [-] Spring是什么 搭建Spring框架 简单Demo 1,建立User类 2,建立Test类 3,建立ApplicationCont ...
- spring schema自定义
今天看了一下分布式服务框架的那本书,于是里面提到了spring schema的自定义,于是去简单的了解了一下 参考资源:spring schema扩展: http://www.yihaomen.com ...
- Spring框架[一]——spring概念和ioc入门(ioc操作xml配置文件)
Spring概念 spring是开源的轻量级框架(即不需要依赖其他东西,可用直接使用) spring核心主要两部分 aop:面向切面编程,扩展功能不是修改源代码来实现: ioc:控制反转,比如:有一个 ...
- 【Spring】Spring之浅析Spring框架的搭建
Spring是什么 Spring是一个开源的容器框架,用于配置bean并且维护bean之间关系的.其主要的思想就是IOC(Inversion Of Control,控制反转)或者称作DI(Depend ...
- Spring.Net框架二:配置Spring.Net框架环境
一.下载DLL文件 去Spring的官方网站下载并解压,然后直接添加dll文件的引用就可以了.在上一篇文章中,已经介绍过Spring.Net框架中需要使用到的dll文件.这些程序集文件位于Spring ...
- Java开发工程师(Web方向) - 04.Spring框架 - 第1章.Spring概述
第1章.Spring概述 Spring概述 The Spring Framework is a lightweight solution and a potential one-stop-shop f ...
- Spring 框架的概述以及Spring中基于XML的IOC配置
Spring 框架的概述以及Spring中基于XML的IOC配置 一.简介 Spring的两大核心:IOC(DI)与AOP,IOC是反转控制,DI依赖注入 特点:轻量级.依赖注入.面向切面编程.容器. ...
- Spring框架系列(3) - 深入浅出Spring核心之控制反转(IOC)
在Spring基础 - Spring简单例子引入Spring的核心中向你展示了IoC的基础含义,同时以此发散了一些IoC相关知识点; 本节将在此基础上进一步解读IOC的含义以及IOC的使用方式.@pd ...
随机推荐
- 如何对HTMLTestRunner 进行输出print 进行修改
在 HTMLTestRunner 模块中,在运行代码后,在输入的html页面值出现了特别简单的一个页面,那么现在如何将HTML页面中输出的更多print 在 HTMLTestRunner.py文件中查 ...
- SfMLearner论文笔记——Unsupervised Learning of Depth and Ego-Motion from Video
1. Abstract 提出了一种无监督单目深度估计和相机运动估计的框架 利用视觉合成作为监督信息,使用端到端的方式学习 网络分为两部分(严格意义上是三个) 单目深度估计 多视图姿态估计 解释性网络( ...
- Oracle_备份整库
@echo off color 0b & cls echo echo 设置备份文件存放文件夹... echo set "tbuf=C:\OracleBackup" if n ...
- Redis(二)-Win系统下安装
下载地址:https://github.com/MSOpenTech/redis/releases. Redis 支持 32 位和 64 位.这个需要根据你系统平台的实际情况选择,这里我们下载 Red ...
- CSS多列布局(实例)
前言 一列布局 二列布局 三列布局 1 一列布局 一列布局: HTML部分 <!DOCTYPE html> <html> <head> <meta chars ...
- Spring 错误日志
13:19:14.437 [main] DEBUG org.springframework.boot.context.logging.ClasspathLoggingApplicationListen ...
- 用Python+selenium打开IE浏览器和Chrome浏览器的问题
这几天在学Python+selenium自动化,对三大浏览器Firefox,Chrome和IE都做了尝试,也都分别下载了对应的webdriver,如:geckodriver.chromedriver. ...
- Newtonsoft.Json 处理日期格式
Newtonsoft.Json.Converters.IsoDateTimeConverter iso = new Newtonsoft.Json.Converters.IsoDateTimeConv ...
- 怎样在PDF文件中查找某个特定的词?
不得不说中国的修饰词太多了例如:“滚”可以这样说,请你以一种圆润的方式离开:上次小编在路上听到某男子打电话,好像是给女孩子,那口才,是真的牛,夸人不带重复的.要不是我男孩子,我都想以身相许了.人们常常 ...
- web开发——在网页中引用字体包(.ttf),即嵌入特殊字体
在写html时,有点时候需要显示一些特殊字体,不过这些特殊字体是系统一般不自带的,这时就需要我们自行加载要用的字体.方法如下: 1.首先在style里添加: @font-face { font-fam ...