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

Spring ProtocolResolver策略接口示例

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

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

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

}

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

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

具體用法如下:

自定義MyProtocolResolver,加載資源時(shí),當(dāng)我們輸入的資源路徑以path:開(kāi)頭時(shí),就會(huì)加載相對(duì)路徑下的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);
  }

}

測(cè)試:

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

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

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

相關(guān)文章

  • 詳解Spring?延遲初始化遇到的問(wèn)題

    詳解Spring?延遲初始化遇到的問(wèn)題

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

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

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

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

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

    Java中的RMI使用方法詳解

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

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

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

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

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

    解決IntelliJ IDEA 控制臺(tái)輸出中文亂碼問(wèn)題(史上最簡(jiǎn)單)

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

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

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

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

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

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

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

最新評(píng)論

武清区| 平安县| 万山特区| 达拉特旗| 澄迈县| 武川县| 莒南县| 彰化市| 沁阳市| 江达县| 汉寿县| 武汉市| 珠海市| 泰和县| 双峰县| 琼海市| 开平市| 淳安县| 旬邑县| 仁化县| 乌拉特后旗| 阿克陶县| 龙岩市| 长岭县| 舟曲县| 鹤山市| 合江县| 峡江县| 布拖县| 黑山县| 泌阳县| 淳化县| 郸城县| 泽普县| 新田县| 玉树县| 北辰区| 新乐市| 龙井市| 肇庆市| 文成县|