最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring ProtocolResolver策略接口示例

 更新時(shí)間:2020年04月24日 10:53:47   作者:海之浪子  
這篇文章主要介紹了Spring ProtocolResolver策略接口示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

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

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

}

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

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

具體用法如下:

自定義MyProtocolResolver,加載資源時(shí),當(dāng)我們輸入的資源路徑以path:開頭時(shí),就會(huì)加載相對路徑下的config/下相應(yīng)的資源。

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);

由此我們可以通過實(shí)現(xiàn)ProtocolResolver接口來定義我們自己的加載資源路徑,也可以自定義自己加載資源路徑的優(yōu)先級。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Spring?延遲初始化遇到的問題

    詳解Spring?延遲初始化遇到的問題

    這篇文章主要介紹了我們在使用Spring延遲初始化容易遇到的問題,文中有詳細(xì)的代碼示例,具有一定的參考價(jià)值,需要的可以借鑒一下
    2023-05-05
  • 解決Mybatis中foreach嵌套使用if標(biāo)簽對象取值的問題

    解決Mybatis中foreach嵌套使用if標(biāo)簽對象取值的問題

    這篇文章主要介紹了解決Mybatis中foreach嵌套使用if標(biāo)簽對象取值的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • xxl-job 帶參數(shù)執(zhí)行和高可用部署方法

    xxl-job 帶參數(shù)執(zhí)行和高可用部署方法

    這篇文章主要介紹了xxl-job 帶參數(shù)執(zhí)行和高可用部署,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • Java中的RMI使用方法詳解

    Java中的RMI使用方法詳解

    這篇文章主要介紹了Java中的RMI使用方法,RMI是Java提供的一個(gè)完善的簡單易用的遠(yuǎn)程方法調(diào)用框架,采用客戶服務(wù)器通信方式,在服務(wù)器上部署了提供各種服務(wù)的遠(yuǎn)程對象,下面我們來詳細(xì)講解
    2023-10-10
  • Spring Boot集成ElasticSearch實(shí)現(xiàn)搜索引擎的示例

    Spring Boot集成ElasticSearch實(shí)現(xiàn)搜索引擎的示例

    這篇文章主要介紹了Spring Boot集成ElasticSearch實(shí)現(xiàn)搜索引擎的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • SpringBoot利用@Validated注解優(yōu)雅實(shí)現(xiàn)參數(shù)校驗(yàn)

    SpringBoot利用@Validated注解優(yōu)雅實(shí)現(xiàn)參數(shù)校驗(yàn)

    在開發(fā) Web 應(yīng)用時(shí),用戶輸入的合法性校驗(yàn)是保障系統(tǒng)穩(wěn)定性的基礎(chǔ),?Spring Boot 的 @Validated 注解 提供了一種更優(yōu)雅的解決方案,下面就跟隨小編一起學(xué)習(xí)一下吧
    2025-04-04
  • 解決IntelliJ IDEA 控制臺輸出中文亂碼問題(史上最簡單)

    解決IntelliJ IDEA 控制臺輸出中文亂碼問題(史上最簡單)

    這篇文章主要介紹了史上最簡單的IntelliJ IDEA 控制臺輸出中文亂碼問題的解決方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-05-05
  • IDEA巧用Postfix Completion讓碼速起飛(小技巧)

    IDEA巧用Postfix Completion讓碼速起飛(小技巧)

    這篇文章主要介紹了IDEA巧用Postfix Completion讓碼速起飛,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • spring-spring容器中bean知識點(diǎn)總結(jié)

    spring-spring容器中bean知識點(diǎn)總結(jié)

    在本篇文章里小編給大家分享了關(guān)于spring-spring容器中bean知識點(diǎn)總結(jié),有需要的朋友們可以學(xué)習(xí)下。
    2019-08-08
  • Java基于Semaphore構(gòu)建阻塞對象池

    Java基于Semaphore構(gòu)建阻塞對象池

    這篇文章主要介紹了Java基于Semaphore構(gòu)建阻塞對象池,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04

最新評論

浮梁县| 郎溪县| 交城县| 无棣县| 织金县| 中山市| 靖江市| 隆昌县| 喀什市| 安福县| 进贤县| 山西省| 同江市| 千阳县| 岑巩县| 遂宁市| 卫辉市| 萨迦县| 万年县| 芷江| 昌宁县| 霍州市| 延津县| 新晃| 明水县| 呈贡县| 泰来县| 曲阜市| 栾川县| 阜平县| 邵武市| 息烽县| 日喀则市| 阿尔山市| 龙里县| 凤凰县| 吴旗县| 孝昌县| 故城县| 绥江县| 买车|