首页 > 其他分享 >Spring | 资源处理扩展】

Spring | 资源处理扩展】

时间:2023-08-12 14:31:51浏览次数:38  
标签:ApplicationContext Resource 处理 Spring ResourceLoader 扩展 接口 template 加载

上文讲了 【Spring | 资源处理 】 本文讲一下resource的扩展接口相关

(资源处理扩展)

ResourceLoader 接口


ResourceLoader 接口用于加载 Resource 对象。

定义


定义如下:


public interface ResourceLoader {

	Resource getResource(String location);

	ClassLoader getClassLoader();
}

  Spring 中,所有的 ApplicationContext 都实现了 ResourceLoader 接口。因此,所有 ApplicationContext 都可以通过 getResource()方法获取 Resource实例。

图解


图解如下在这里插入图片描述

示例


示例如下

// 
Resource template = ctx.getResource("some/resource/path/myTemplate.txt");
// 
Resource template = ctx.getResource("classpath:some/resource/path/myTemplate.txt");
//
Resource template = ctx.getResource("file:///some/resource/path/myTemplate.txt");
//
Resource template = ctx.getResource("https://myhost.com/resource/path/myTemplate.txt");


策略


Spring根据各种位置路径加载资源的策略如下:

字首 样例 描述
classpath: classpath:com/myapp/config.xml 从类路径加载
file: file:///data/config.xml 以URL形式从文件系统加载
http: http://myserver/logo.png 以URL形式加载
-- /data/config.xml 取决于底层ApplicationContext

ResourcePatternResolver接口


  ResourcePatternResolver接口是 ResourceLoader接口的扩展,它的作用是定义策略,根据位置模式解析Resource对象。

public interface ResourcePatternResolver extends ResourceLoader {

	String CLASSPATH_ALL_URL_PREFIX = "classpath*:";

	Resource[] getResources(String locationPattern) throws IOException;
}

  由上文示例可知,该接口还为类路径中的所有匹配资源定义了一个特殊的classpath*:resource前缀。请注意,在这种情况下,资源位置应该是一个没有占位符的路径 — 例如,类路径中的classpath*:/config/beans.xml.JAR文件或不同目录可以包含多个具有相同路径和相同名称的文件。

  PathMatchingResourcePatternResolver是一个独立的实现,可以在ApplicationContext外部使用,也可以被ResourceArrayPropertyEditor用于填充Resource[]bean属性。PathMatchingResourcePatternResolver 能够将指定的资源位置路径解析为一个或多个匹配的Resource对象。

标签:ApplicationContext,Resource,处理,Spring,ResourceLoader,扩展,接口,template,加载
From: https://blog.51cto.com/u_16111319/7058975

相关文章

  • springboot项目创建即运行
    springboot项目创建这是相关依赖项目如果用到Mybatis和数据库MySQL需要勾选在springboot项目中企业级最终是使用result设计模式返回数据,就是创建一个result类用于接管要返回的各种数据result类的代码publicclassResult{privateintcode;privateStringmes;......
  • 访问网站慢处理方法,思路流程
    chrome浏览器F12点Network 查看载入时间禁用缓存Disablecache超过几百毫秒,就需要分析了右面绿条越长加载时间越长有的边长了会变红 发黑ping不通服务宕机 机房宕机 服务过载ping通不丢包服务宕机 机房宕机 服务过载ping的通但是断断续续的丢包比如10次只有5次通......
  • Spring Boot的优缺点以及四大核心
    一、SpringBoot是什么?SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapidapplicationd......
  • dbt 官方提供的一些强大的周边扩展
    官方提供的一些不错的dbt周边扩展metricflow此功能属于dbt语义曾的一个核心组件这个是官方在推广的,对于我们进行数据分析很不错,参考玩法dbt-meshify这个属于dbtcore的一个扩展,提供了创建group,contract,access,version以及进行项目split的能力dbt-docs自动生成文档的,基于......
  • GPT之路(一) AI基础之自然语言处理NLP工作原理
    这篇随笔主要是介绍AI基础知识,自然语言处理NLP1.自然语言处理NLP工作原理自然语言处理(NaturalLanguageProcessing,NLP)是指计算机与人类自然语言进行交互的技术领域,它涉及到语音识别、文本分析、机器翻译、情感分析、自然语言生成等多个方面。NLP是人工智能的一个分支,它使计......
  • Vegas Pro(视频处理)电脑版-Vegas Pro(视频处理)下载 官方版特色
    VegasPro是一个视频剪辑工具,我们可以使用这个软件来制作各种奇幻的视频。因为我们可以在里面添加各种特效和转场,让你的视频看起来更有观赏性。支持自由建立图层,在图层中添加素材,合并在一起,让视频内容更丰富,还有视频模板可以直接套用,功能强大等你来体验。软件地址:看置顶贴软件功能1......
  • Vegas Pro电脑版下载_Vegas Pro(视频处理)官方最新版 官方版特色
    软件特色1、【HDR颜色支持】完全支持VEGASPro16现在包含的高动态范围(HDR)颜色,您可以使用最新相机的视频片段,在HDR参考监视器上预览您的工作,并提供令人惊叹的HDR工作。2、【支持4KUHD高清画面】在每一个项目中实现惊人的质量。智能化技术能够在您的4K产品中使用你存档的高清画面......
  • PHP处理建行数币支付的几种情况
    一、支付时,验签MAC参数生成原理:$A="MERCHANTID=105002653991975&POSID=042166601&BRANCHID=322000000&ORDERID=202201241515557833&PAYMENT=0.01&CURCODE=01&TXCODE=HT0000&REMARK1=bill&REMARK2=&RETURNTYPE=1&TIMEOUT=";//根据接......
  • SpringBoot跨域
    SpringBooot2.5.12packagecom.lenovo.lps.cost.servicecto.config;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importorg.springframework.http.client.SimpleClientHttpRequestFactory;imp......
  • SpringBoot BigDecimal精度丢失
    jackjson自动丢弃了小数位最末尾的0privateBigDecimalprice;price=12.10;返回自动转为了12.1解决方案1:返回字段都用字符串2:BigDecimal序列化自定义处理packagecom.lenovo.lps.cost.integrator.config;importcom.fasterxml.jackson.core.JsonGenerat......