- 浏览: 2600763 次
- 来自: 杭州
文章分类
- 全部博客 (1190)
- webwork (4)
- 网摘 (18)
- java (104)
- hibernate (1)
- Linux (85)
- 职业发展 (1)
- activeMQ (2)
- netty (15)
- svn (1)
- webx3 (12)
- mysql (81)
- css (1)
- HTML (6)
- apache (3)
- 测试 (2)
- javascript (1)
- 储存 (1)
- jvm (5)
- code (13)
- 多线程 (12)
- Spring (18)
- webxs (2)
- python (119)
- duitang (0)
- mongo (3)
- nosql (4)
- tomcat (4)
- memcached (20)
- 算法 (28)
- django (28)
- shell (1)
- 工作总结 (5)
- solr (42)
- beansdb (6)
- nginx (3)
- 性能 (30)
- 数据推荐 (1)
- maven (8)
- tonado (1)
- uwsgi (5)
- hessian (4)
- ibatis (3)
- Security (2)
- HTPP (1)
- gevent (6)
- 读书笔记 (1)
- Maxent (2)
- mogo (0)
- thread (3)
- 架构 (5)
- NIO (5)
- 正则 (1)
- lucene (5)
- feed (4)
- redis (17)
- TCP (6)
- test (0)
- python,code (1)
- PIL (3)
- guava (2)
- jython (4)
- httpclient (2)
- cache (3)
- signal (1)
- dubbo (8)
- HTTP (4)
- json (3)
- java socket (1)
- io (2)
- socket (22)
- hash (2)
- Cassandra (1)
- 分布式文件系统 (5)
- Dynamo (2)
- gc (8)
- scp (1)
- rsync (1)
- mecached (0)
- mongoDB (29)
- Thrift (1)
- scribe (2)
- 服务化 (3)
- 问题 (83)
- mat (1)
- classloader (2)
- javaBean (1)
- 文档集合 (27)
- 消息队列 (3)
- nginx,文档集合 (1)
- dboss (12)
- libevent (1)
- 读书 (0)
- 数学 (3)
- 流程 (0)
- HBase (34)
- 自动化测试 (1)
- ubuntu (2)
- 并发 (1)
- sping (1)
- 图形 (1)
- freemarker (1)
- jdbc (3)
- dbcp (0)
- sharding (1)
- 性能测试 (1)
- 设计模式 (2)
- unicode (1)
- OceanBase (3)
- jmagick (1)
- gunicorn (1)
- url (1)
- form (1)
- 安全 (2)
- nlp (8)
- libmemcached (1)
- 规则引擎 (1)
- awk (2)
- 服务器 (1)
- snmpd (1)
- btrace (1)
- 代码 (1)
- cygwin (1)
- mahout (3)
- 电子书 (1)
- 机器学习 (5)
- 数据挖掘 (1)
- nltk (6)
- pool (1)
- log4j (2)
- 总结 (11)
- c++ (1)
- java源代码 (1)
- ocr (1)
- 基础算法 (3)
- SA (1)
- 笔记 (1)
- ml (4)
- zokeeper (0)
- jms (1)
- zookeeper (5)
- zkclient (1)
- hadoop (13)
- mq (2)
- git (9)
- 问题,io (1)
- storm (11)
- zk (1)
- 性能优化 (2)
- example (1)
- tmux (1)
- 环境 (2)
- kyro (1)
- 日志系统 (3)
- hdfs (2)
- python_socket (2)
- date (2)
- elasticsearch (1)
- jetty (1)
- 树 (1)
- 汽车 (1)
- mdrill (1)
- 车 (1)
- 日志 (1)
- web (1)
- 编译原理 (1)
- 信息检索 (1)
- 性能,linux (1)
- spam (1)
- 序列化 (1)
- fabric (2)
- guice (1)
- disruptor (1)
- executor (1)
- logback (2)
- 开源 (1)
- 设计 (1)
- 监控 (3)
- english (1)
- 问题记录 (1)
- Bitmap (1)
- 云计算 (1)
- 问题排查 (1)
- highchat (1)
- mac (3)
- docker (1)
- jdk (1)
- 表达式 (1)
- 网络 (1)
- 时间管理 (1)
- 时间序列 (1)
- OLAP (1)
- Big Table (0)
- sql (1)
- kafka (1)
- md5 (1)
- springboot (1)
- spring security (1)
- Spring Boot (3)
- mybatis (1)
- java8 (1)
- 分布式事务 (1)
- 限流 (1)
- Shadowsocks (0)
- 2018 (1)
- 服务治理 (1)
- 设计原则 (1)
- log (0)
- perftools (1)
最新评论
-
Aqu415:
,默认是netty还是hassion?
dubbo入门 -
siphlina:
课程——基于Python数据分析与机器学习案例实战教程分享网盘 ...
Python机器学习库 -
san_yun:
leibnitz 写道hi,我想知道,无论在92还是94版本, ...
hbase的行锁与多版本并发控制(MVCC) -
leibnitz:
hi,我想知道,无论在92还是94版本,更新时(如Puts)都 ...
hbase的行锁与多版本并发控制(MVCC) -
107x:
不错,谢谢!
Latent Semantic Analysis(LSA/ LSI)算法简介
以Template渲染服务为例子
services是root扩展点,template是对services的捐献,同时template的element也是扩展点,namespace:http://www.alibaba.com/schema/services/template/engines,详见template.xsd:
template的属性:searchExtensions等。
template的elements:global-macros, plugins。
global-macros是一个list sting
plugins又是一个扩展点.vm-plugins是其中的一种捐献。
对应的xsd描述:
其中的
定义了element的名字和类型的映射关系,下面是type的描述:
xsd:sequence表示list,xsd:any表示所有满足namespace="http://www.alibaba.com/schema/services/template/engines/velocity/plugins"都行。其实就是定义了一处扩展点。
二.VelocityEngineDefinitionParser类
再来看看VelocityEngineDefinitionParser如何来parser。
VelocityEngineDefinitionParser 继承了 AbstractSingleBeanDefinitionParser,但是要注意如果是顶级service要继承AbstractNamedBeanDefinitionParser,实现其getDefaultName方法。否则会抛出异常。
谢谢支持,只不过是胡乱记录自己看的。
<!-- Template渲染服务。 --> <services:template xmlns="http://www.alibaba.com/schema/services/template/engines" searchExtensions="true"> <velocity-engine templateEncoding="GBK" strictReference="false" path="/templates/${component}"> <global-macros> <name>global/*.vm</name> </global-macros> <plugins> <vm-plugins:escape-support defaultEscape="html"> <vm-plugins:noescape> <vm-plugins:if-matches pattern="^control\." /> <vm-plugins:if-matches pattern="^screen_placeholder" /> <vm-plugins:if-matches pattern="^stringEscapeUtil\.escape" /> <vm-plugins:if-matches pattern="^csrfToken\.(get)?hiddenField" /> </vm-plugins:noescape> </vm-plugins:escape-support> </plugins> </velocity-engine> </services:template>
services是root扩展点,template是对services的捐献,同时template的element也是扩展点,namespace:http://www.alibaba.com/schema/services/template/engines,详见template.xsd:
<xsd:complexType name="TemplateServiceType"> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element name="template-mapping" type="TemplateServiceEngineMappingType" minOccurs="0" maxOccurs="unbounded"> <xsd:annotation> <xsd:documentation><![CDATA[ 将模板引擎和模板名后缀关联起来。 ]]></xsd:documentation> </xsd:annotation> </xsd:element> <xsd:any namespace="http://www.alibaba.com/schema/services/template/engines" /> </xsd:choice> <xsd:attribute name="defaultExtension" type="xsd:string" /> <xsd:attribute name="searchExtensions" type="springext:booleanOrPlaceholder" /> <xsd:attribute name="searchLocalizedTemplates" type="springext:booleanOrPlaceholder" /> <xsd:attribute name="cacheEnabled" type="springext:booleanOrPlaceholder" /> <xsd:attributeGroup ref="springext:identifiedTypeAttributeSubset" /> </xsd:complexType> <xsd:complexType name="TemplateServiceEngineMappingType"> <xsd:attribute name="extension" type="xsd:string" use="required" /> <xsd:attribute name="engine" type="xsd:string" use="required" /> </xsd:complexType>
template的属性:searchExtensions等。
template的elements:global-macros, plugins。
global-macros是一个list sting
plugins又是一个扩展点.vm-plugins是其中的一种捐献。
对应的xsd描述:
<xsd:complexType name="VelocityTemplateEngineType"> <xsd:complexContent> <xsd:extension base="beans:identifiedType"> <xsd:all> <xsd:element name="global-macros" type="VelocityGlobalMacrosType" minOccurs="0"> <xsd:annotation> <xsd:documentation><![CDATA[ 装载全局宏(相对于path路径),可使用通配符。 ]]></xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="plugins" type="VelocityPluginsType" minOccurs="0"> <xsd:annotation> <xsd:documentation><![CDATA[ Velocity插件和事件处理器。 ]]></xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="advanced-properties" type="VelocityPropertiesType" minOccurs="0"> <xsd:annotation> <xsd:documentation><![CDATA[ Velocity高级设置,参见velocity文档: (http://velocity.apache.org/engine/releases/velocity-1.6.2/developer-guide.html#Velocity_Configuration_Keys_and_Values) 和默认配置文件:org/apache/velocity/runtime/defaults/velocity.properties。 ]]></xsd:documentation> </xsd:annotation> </xsd:element> </xsd:all> <xsd:attribute name="path" type="xsd:string" default="/templates" /> <xsd:attribute name="templateEncoding" type="xsd:string" default="UTF-8" /> <xsd:attribute name="cacheEnabled" type="springext:booleanOrPlaceholder" default="true" /> <xsd:attribute name="modificationCheckInterval" type="springext:integerOrPlaceholder" default="2" /> <xsd:attribute name="strictReference" type="springext:booleanOrPlaceholder" default="true" /> </xsd:extension> </xsd:complexContent> </xsd:complexType>
其中的
<xsd:element name="global-macros" type="VelocityGlobalMacrosType" minOccurs="0"> <xsd:element name="plugins" type="VelocityPluginsType" minOccurs="0">
定义了element的名字和类型的映射关系,下面是type的描述:
<xsd:complexType name="VelocityGlobalMacrosType"> <xsd:sequence> <xsd:element name="name" type="xsd:string" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="VelocityPluginsType"> <xsd:sequence> <xsd:any namespace="http://www.alibaba.com/schema/services/template/engines/velocity/plugins" minOccurs="0" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType>
xsd:sequence表示list,xsd:any表示所有满足namespace="http://www.alibaba.com/schema/services/template/engines/velocity/plugins"都行。其实就是定义了一处扩展点。
二.VelocityEngineDefinitionParser类
再来看看VelocityEngineDefinitionParser如何来parser。
VelocityEngineDefinitionParser 继承了 AbstractSingleBeanDefinitionParser,但是要注意如果是顶级service要继承AbstractNamedBeanDefinitionParser,实现其getDefaultName方法。否则会抛出异常。
评论
2 楼
san_yun
2011-09-26
singleant 写道
楼主说得好!up!
谢谢支持,只不过是胡乱记录自己看的。
1 楼
singleant
2011-09-26
楼主说得好!up!
发表评论
-
Session失效的几种方法
2012-03-08 12:37 1392Session失效的几种方法 (1)在主页面或者公共页面中加入 ... -
struts2和webx参数注入比较
2012-02-27 16:09 1022struts2 使用ognl 通过setter注入参数 ... -
webx3 ajax实践
2012-02-03 16:31 4184webx3处理ajax很简单,需要注意的是别忘了家cache- ... -
webx3 FQA
2011-11-19 23:07 17021. 在webx3的control类里面无法重定向: navi ... -
web3 URLBroker
2011-11-19 20:07 1069http://www.3renyou.com:8080/pla ... -
webx session读写
2011-10-25 11:24 1027画了两张图 -
webx3问题解决
2011-10-15 23:02 10681.404错误无法找到设置的error.vm。 原因err ... -
webx3的对象树
2011-10-15 22:34 874WebxComponents { parentContex ... -
webx pipeline
2011-09-30 15:26 1482pipeline 1. analyzeURL(分析URL的目 ... -
webx3核心配置
2011-09-30 12:29 2362Webx3 服务配置 1 RequestContext < ... -
webx
2011-06-14 21:06 1534webx初始化: listener: WebxCon ...
相关推荐
Webx3_Guide_Book 用户指南 2001年,阿里巴巴内部开始使用Java Servlet作为WEB服务器端的技术,以取代原先的 Apache HTTPD server和mod_perl的组合。 • 2002年,选择Jakarta Turbine作为WEB框架,并开始在此之上...
该文档为官方webx框架文档,对webx进行了全面的讲解,非常实用。
webx3 PDF(阿里巴巴 前端web框架)
根据webx3的官方网站,www.openwebx.org,找到“创建一个webx应用”,按照上面说的流程,就可以创建一个webx的项目。具体流程这里就不说了,官网上已经写得很清楚了。
阿里巴巴公司的开发框架webx3介绍 Webx3_Guide_Book.pdf
Webx及框架简介 ppt 格式
Webx是一个在阿里巴巴集团内部广泛使用的,层次化、模块化的一个Web框架。...利用这些特性,Webx不仅能够用来开发高度可定制的Web应用(这是它的主要功能),也能够用来帮助你开发高度可扩展的非WEB的应用。
webx3 启动顺序,webx使用总结,webx表单提交(感觉你还是看webx文档 貌似更加好哦!那个表单提交写的很是详细)
Webx3_Guide_Book主要讲解webx框架的使用引导教程,方便您更好的使用Webx3
webx3.0学习小结
阿里开源框架webx的文档,想要学习webx或者维护webx的开发者可以下载
WEBX是阿里巴巴的内部框架,“就是把页面与Service层之间的一些Servlet等公共的东西抽象出来,提供相应的服务以提高开发效率(《接口测试之Webx简介》—何晓峰 )”,可以看出,webx和传统的servlet-action模式的...
webx框架(淘宝框架),webx+spring+ibatis
NULL 博文链接:https://xj84.iteye.com/blog/1850955
WEBX框架详解,更好的了解Taobao的开发过程,对于新手更容易上手。
paoding-webx3-solr-lucene
Webx框架指南 Michael Zhou 出版日期 2010-11-13
快速使用 webx 开发web 应用 Webx框架指南 Michael Zhou
NULL 博文链接:https://trent-luo.iteye.com/blog/1071745
淘宝开源Web开发框架Webx3.0介绍,内附宠物店程序作为例子详细解说webx框架的方方面面。