91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring ProtocolResolver策略接口的用法

發布時間:2020-07-31 09:44:50 來源:億速云 閱讀:268 作者:小豬 欄目:編程語言

這篇文章主要講解了Spring ProtocolResolver策略接口的用法,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

ProtocolResolver是一個策略接口,可以用于自定義協議解析, 比如spring就有一個 “classpath:”開頭的特定協議(但是spring并不是自定義ProtocolResolver 實現來完成這個功能的)

@FunctionalInterface
public interface ProtocolResolver {
	@Nullable
	Resource resolve(String location, ResourceLoader resourceLoader);

}

@FunctionalInterface:聲明該接口是一個函數式接口,主要用于編譯級錯誤檢查,加上該注解,該接口中只能定義唯一一個方法。

spring提供了ProtocolResolver機制,用于匹配自定義的文件schema來加載文件;而且不干擾ResourceLoader的機制,最重要的是它會添加到spring環境下的所有的loader中。我們只需要擴展一個ProtocolResolver類,并將它在合適的實際加入到ResourceLoader即可,此后加載properties文件時我們的ProtocolResolver總會被執行

具體用法如下:

自定義MyProtocolResolver,加載資源時,當我們輸入的資源路徑以path:開頭時,就會加載相對路徑下的config/下相應的資源。

public class MyProtocolResolver implements ProtocolResolver {
  public static final String PATH = "path:";
  @Override
  public Resource resolve(String location, ResourceLoader resourceLoader) {
    if (!location.startsWith(PATH))
      return null;
    String realPath = location.substring(5);
    String classPath = "classpath:config/" + realPath;
  
    return resourceLoader.getResource(classPath);
  }

}

測試:

DefaultResourceLoader resourceLoader=new DefaultResourceLoader();
resourceLoader.addProtocolResolver(new MyProtocolResolver());
Resource resource = resourceLoader.getResource("path:config.txt");
InputStream inputStream = resource.getInputStream();
StringBuffer out = new StringBuffer();
byte[] b = new byte[4096];
for (int n; (n = inputStream.read(b)) != -1; ) {
out.append(new String(b, 0, n));
}
System.out.println(out);

由此我們可以通過實現ProtocolResolver接口來定義我們自己的加載資源路徑,也可以自定義自己加載資源路徑的優先級。

看完上述內容,是不是對Spring ProtocolResolver策略接口的用法有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长治市| 蓝田县| 和林格尔县| 六盘水市| 遵化市| 突泉县| 灵寿县| 交城县| 和硕县| 绥宁县| 临沂市| 昂仁县| 信丰县| 福海县| 长泰县| 武功县| 三明市| 泸溪县| 桃园市| 娱乐| 屏南县| 磴口县| 永安市| 江陵县| 共和县| 竹北市| 延寿县| 上犹县| 襄樊市| 巴林右旗| 磐安县| 盘山县| 普兰店市| 建瓯市| 兴和县| 大城县| 阜平县| 府谷县| 和平县| 赤峰市| 白银市|