资讯专栏INFORMATION COLUMN

spring--源码分析

dailybird / 1173人阅读

摘要:将绝对路径下的资源解释为相对路径,给相应的类加载定位的资源的实现,支持路径或协议下的文件用于加载或的路径资源类的抽象基类。一个实现描述资源但不是一个真实资源的实现。

Spring的配置文件是通过ClassPathResource来进行封装的,在Java中,不同的资源抽象成URL,通过注册不同的handle来处理不同的URL获取逻辑,一般的handle类型通过使用不同的前缀来来识别,比如file;http等,可以注册自己的URLStreamHandle来处理特定的前缀的文件,然而这需要检查当前的资源是否存在等。
对于不同的文件,Spring有不同的实现方式。

比如说,在系统中,我们可以使用
Resource re = new ClassPathResource("bean.xml");
InputStream in = re.getInputStream();得到InputStream的实例之后,就可以使用Resource及其子类提供的方法,进行相应的功能的开发了。

ClassPathResource : 类路径下的资源文件,使用classLoader或class加载资源,
支持文件系统下的资源以类路径,URL等方式加载资源,但是不支持jar包里面的资源。

ClassRelativeResourceLoader:将绝对路径下的资源解释为相对路径,给相应的类加载

UrlResource:URL定位的Resource资源的实现,支持URL路径或protocol协议下的文件

AbstractFileResolvingResource:用于加载UrlResource或ClassPathResource的路径
资源类的抽象基类。

DescriptiveResource:一个实现描述资源但不是一个真实资源的URL实现。

FileSystemResource:一个实现文件处理的资源实现,支持文件或URL,实现WriteResource接口

ByteArrayResource:一个实现字节数组的资源实现,为字节资源创建ByteArrayInputStream

AbstractResource:一个公共的抽象接口类供调用,这个exists方法用于检查是否一个文件或
输入资源是否存在,isOpen总是返回false,toString方法返回描述。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/72310.html

相关文章

  • Spring IOC 容器源码分析 - 余下的初始化工作

    摘要:简介本篇文章是容器源码分析系列文章的最后一篇文章,本篇文章所分析的对象是方法,该方法用于对已完成属性填充的做最后的初始化工作。后置处理器是拓展点之一,通过实现后置处理器接口,我们就可以插手的初始化过程。 1. 简介 本篇文章是Spring IOC 容器源码分析系列文章的最后一篇文章,本篇文章所分析的对象是 initializeBean 方法,该方法用于对已完成属性填充的 bean 做最...

    Alfred 评论0 收藏0
  • Spring IOC 容器源码分析系列文章导读

    摘要:本文是容器源码分析系列文章的第一篇文章,将会着重介绍的一些使用方法和特性,为后续的源码分析文章做铺垫。我们可以通过这两个别名获取到这个实例,比如下面的测试代码测试结果如下本小节,我们来了解一下这个特性。 1. 简介 Spring 是一个轻量级的企业级应用开发框架,于 2004 年由 Rod Johnson 发布了 1.0 版本。经过十几年的迭代,现在的 Spring 框架已经非常成熟了...

    NSFish 评论0 收藏0
  • Spring AOP 源码分析系列文章导读

    摘要:在写完容器源码分析系列文章中的最后一篇后,没敢懈怠,趁热打铁,花了天时间阅读了方面的源码。从今天开始,我将对部分的源码分析系列文章进行更新。全称是,即面向切面的编程,是一种开发理念。在中,切面只是一个概念,并没有一个具体的接口或类与此对应。 1. 简介 前一段时间,我学习了 Spring IOC 容器方面的源码,并写了数篇文章对此进行讲解。在写完 Spring IOC 容器源码分析系列...

    张春雷 评论0 收藏0
  • Spring IOC 容器源码分析 - 填充属性到 bean 原始对象

    摘要:源码分析源码一览本节,我们先来看一下填充属性的方法,即。所有的属性值是在方法中统一被注入到对象中的。检测是否存在与相关的或。这样可以在很大程度上降低源码分析的难度。若候选项是非类型,则表明已经完成了实例化,此时直接返回即可。 1. 简介 本篇文章,我们来一起了解一下 Spring 是如何将配置文件中的属性值填充到 bean 对象中的。我在前面几篇文章中介绍过 Spring 创建 bea...

    SKYZACK 评论0 收藏0
  • Spring IOC 容器源码分析 - 创建单例 bean 的过程

    摘要:关于创建实例的过程,我将会分几篇文章进行分析。源码分析创建实例的入口在正式分析方法前,我们先来看看方法是在哪里被调用的。时,表明方法不存在,此时抛出异常。该变量用于表示是否提前暴露单例,用于解决循环依赖。 1. 简介 在上一篇文章中,我比较详细的分析了获取 bean 的方法,也就是getBean(String)的实现逻辑。对于已实例化好的单例 bean,getBean(String) ...

    mochixuan 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<