spirng 工具封裝本身的URL參數接口

Springmvc @PathVariable html

帶佔位符的 URL 是 Spring3.0 新增的功能,該功能在SpringMVC 向 REST 目標挺進發展過程當中具備里程碑的意義。java

經過 @PathVariable 能夠將 URL 中佔位符參數綁定到控制器處理方法的入參中:URL 中的 {xxx} 佔位符能夠經過
@PathVariable("xxx") 綁定到操做方法的入參中。spring

實際業務:調用HTTP接口想統一URL格式mvc

如:url

http://www.xxxx.com?a={a}&b={b}rest

http://www.xxx.com/{a}/{b}code

我都想統一調用!htm

我想要個這樣的接口:blog

/**
     * <p>
     * 方法說明 : 調用HTTP接口獲取數據
     * </p>
     *
     * @action lien6o 2018年2月8日 上午11:17:17 描述
     *
     * @param url
     *            請求路徑
     * @param sign
     *            簽名缺省 默認 xxxxx
     * @param paraMap
     *            參數Map
     * @param requestMethod
     *            HTTP請求方式 基於Spring mvc 註解請求方法的枚舉類型 {@link RequestMethod }
     * @return String 返回參數
     */
    String getDateByHttpAgent(String url, String sign, Map<String, String> paramMap, RequestMethod requestMethod);

其餘都好說,就是須要對URL處理接口

UriTemplateHandler uriTemplateHandler = new DefaultUriTemplateHandler();
	// the variables to expand the template
	URI expandUrl = uriTemplateHandler.expand(url, paramMap);

源碼:

public interface UriTemplateHandler {

	/**
	 * Expand the given URI template from a map of URI variables.
	 * @param uriTemplate the URI template string
	 * @param uriVariables the URI variables
	 * @return the resulting URI
	 */
	URI expand(String uriTemplate, Map<String, ?> uriVariables);

	/**
	 * Expand the given URI template from an array of URI variables.
	 * @param uriTemplate the URI template string
	 * @param uriVariables the URI variable values
	 * @return the resulting URI
	 */
	URI expand(String uriTemplate, Object... uriVariables);

}

完畢:

使用了 restTemplate !!

拓展:參考http://www.cnblogs.com/leftthen/p/5212221.html

package org.springframework.util;

public interface PathMatcher {

    /**
     * 判斷傳入的path是否能夠做爲pattern使用
     */
    boolean isPattern(String path);

    /**
     * 使用pattern匹配path
     */
    boolean match(String pattern, String path);

    /**
     * 如名,是否開始部分匹配
     */
    boolean matchStart(String pattern, String path);

    /**
     * 提取path中匹配到的部分,如pattern(myroot/*.html),path(myroot/myfile.html),返回myfile.html
     */
    String extractPathWithinPattern(String pattern, String path);

    /**
     * 提取path中匹配到的部分,只是這邊還需跟佔位符配對爲map,
     * 如pattern(/hotels/{hotel}),path(/hotels/1),解析出"hotel"->"1"
     */
    Map<String, String> extractUriTemplateVariables(String pattern, String path);

    /**
     * 提供比較器
     */
    Comparator<String> getPatternComparator(String path);

    /**
     * 合併pattern,pattern1而後pattern2
     */
    String combine(String pattern1, String pattern2);

}
相關文章
相關標籤/搜索