webx URIBrokerService 总结

1. 概述

Web由有许多资源组成,比如HTML文档,图片,视频, css/javascript等。每一种资源都由一种叫做资源标示符(URI)的符号来定位。URI除了出现在Web页面上,对于程序员来说,有时也会将它作为字面值常量定义在程序当中。

这类静态录入的URI,在早期的系统开发过程中,的确让程序员屡试不爽。但随着系统功能的不断扩充,复杂性越来越高,静态录入URI使得整套系统变得难以扩展和维护。

举个例子,比如你需要对A系统进行移植,但因为早期的URI都是硬编码在程序中,你会慢慢发现所有的URI都需要修改,所有的域名和资源路径都难以统一等等问题。

为了有效解决静态录入URI带来的维护和扩展性问题,URIBroker Service应运而生。

URIBroker Service的特点是以统一的配置和动态渲染的方式来生成URI字符串。在系统重构或移植时,你只需要修改URIBroker Service的统一配置文件 ,无需修改一行代码即可完成全系统URI的无缝迁移。
URLBroker Service从本质上,解决了URI移植性,扩展性差等问题,同时也简化了开发人员的编码工作量。

 

2. 用法

(1)uris.xml配置

在webx3中常用的uri类型如下

<services:uris>
        <uris:uri id="server" requestAware="true" />
        <uris:turbine-uri id="app1Link" exposed="true" extends="server">
            <componentPath>/</componentPath>
        </uris:turbine-uri>
        <uris:turbine-content-uri id="app1Content" exposed="true"  extends="app1Link" />
</services:uris>

 uri标签表示定义一个GenericURIBroker。id是这个URIBroker实例的标示。

exposed表示这个URIBroker是否被公开。只有当URIBroker被公开后,你才能通过id从URIBroker Service中得到对应的URIBroker实例。
例子中id为adminModule的URIBroker,使用了extends属性来表示它继承自另一个URIBroker。继承后的URIBroker在后续配置当中,可以省略父URIBroker中已定义的属性配置。
contentPath和servletPath表示webapp上下文路径和servlet的访问路径。

RequestAware的意思是,uri broker生成时会参考当前请求的URL,将缺失的URL部件补充完整。现在默认值是false
例如,你没有提供servlet path,那么它就会将当前url的servlet path填充进来。

 

(2)URIBrokerService配置

URIBrokerService只需要在Java类中使用注解,即可使用

@Resource
private URIBrokerService uriBrokerService;

 

3. 示例

(1)java 类中

uriBrokerService.getURIBroker("myLink").fork().toString()

 (2)vm 文件中

<a href="$!link">点击链接</a>

 

4. 参考文章

写道
http://code.taobao.org/p/webx/wiki/uri_broker_service/
http://m.blog.csdn.net/blog/cpf2016/45559769
http://blog.creke.net/804.html

 

猜你喜欢

转载自nuistcc.iteye.com/blog/2226469
今日推荐