`
huangxiongxing
  • 浏览: 6059 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类

spring 源码分析(spring加载资源信息)

阅读更多

  资源信息(文件、url响应的信息。。)对开发是很重要的东西。jdk也提供了访问资源的一些基类(File、URl等),但对于框架了来说有一些不是很能满足开发。spring则提供了一个Resource接口。我们来阅读源码。

  Resource接口继承InputSteamResource其实现类为AbstractResource,真实实现类分别为:AbstractFileResolvingResource,BeanDefinitionResource,ByteArrayResource,DescriptiveResource,FileSystemResource,InMemoryResource,ByteArrayResource,VfsResource,UrlResource,ClassPathResource,ServletContextResource,UrlResource,InputStreamResource。还是画图吧。




 
 

 资源类之间的关系就是这些了,来说Resource接口中的方法:

boolean exists();校验资源是否存在

boolean isReadable();校验资源是否刻可读

boolean isOpen();校验资源是否打开,源码解释,资源不可以多次打开,如果打开了请先关闭打开的流资源防止资源泄露。

URL getURL() throws IOException;如果资源可以用URl表示则返回URl对象,则扔异常

URI getURI() throws IOException;,同上

File getFile() throws IOException;不需要太多解释

long contentLength() throws IOException;不需要太多解释

long lastModified() throws IOException;不需要太多解释

Resource createRelative(String relativePath) throws IOException;通过路径创建新的资源信息

String getFilename();不需要太多解释

String getDescription();当使用资源的时候出错返回的信息

 

现在来说说实现类都是主要干嘛用的吧,让我们更真实的了解他们

ByteArrayResource:二进制数组表示的资源,二进制数字资源可以在内存中通过程序构造。

ClassPathResource:类路径下的资源,这个是使用的很频繁的类,我们的classpath下的资源文件就可以通过此类很容易获取

FileSystemResource:文件系统资源,也使用的比较频繁,直接写路径就是可以获取资源了

InputStreamResource:对于的就是InputStream资源咯

ServletContextResource:当你的应用是web时,此类就可以访问web容器上下文中的资源。同时负责加载web应用更目录路径的资源加载,支持已流或者URL的方式访问,在war解包的情况下也可以通过File的方式访问,此类还可以直接访问jar包的访问资源

UrlResource:封装了URL类,可以通过URL的方式访问资源,eg:文件系统资源,http资源,ftp资源

来看看使用比较少的实现类

DescriptiveResource:此类实现没有真正的指向一个资源,只是一个占位符

VfsResource:加载虚拟文件系统的资源,暂时不是很了解,只是从字面意思理解

 

 

  • 大小: 69 KB
分享到:
评论

相关推荐

    Spring源码分析.pdf

    Spring 源码分析 Spring 框架是 Java 语言中最流行的开源框架之一,它提供了一个强大且灵活的基础设施来构建企业级应用程序。在 Spring 框架中,IOC 容器扮演着核心角色,本文将深入分析 Spring 源码,了解 IOC ...

    spring源码分析(1-10)

    10. **Spring Acegi框架授权实现**:Spring Acegi(Spring Security)允许开发者定义访问规则,控制谁可以访问哪些资源。它通过定义AccessDecisionVoter,结合AccessDecisionManager来决定访问权限。 通过这些深入...

    Spring源码分析

    以上只是Spring源码分析的部分内容,实际源码中还包括Spring的其他模块,如Spring Batch(批处理)、Spring Security(安全)、Spring Integration(集成)等。理解并掌握Spring源码,有助于我们更好地利用Spring...

    Spring源码分析_Spring_IOC

    ### Spring源码分析_Spring_IOC:深入理解Spring的IOC容器机制 #### 基本概念与核心作用 在探讨Spring框架的核心组件之一——IOC(Inversion of Control,控制反转)容器之前,首先需要理解它在Spring框架中的角色...

    spring源码分析

    《Spring源码分析》 Spring框架作为Java领域中不可或缺的一部分,其强大之处在于它提供了丰富的功能,包括依赖注入(Dependency Injection,简称DI)、面向切面编程(Aspect-Oriented Programming,简称AOP)、事务...

    spring源码包.zip

    通过对这些模块的源码分析,我们可以深入了解Spring如何实现其强大的功能,并能更好地运用到实际项目中,提升代码质量和可维护性。无论是新手还是经验丰富的开发者,理解Spring的源码都将是一次宝贵的进阶之旅。

    Spring源码分析.rar

    《Spring源码分析》 Spring框架作为Java领域最流行的开源框架之一,它的设计思想和实现方式一直是许多开发者深入研究的对象。这份"Spring源码分析"资料深入探讨了Spring的核心机制,帮助我们理解其背后的原理,从而...

    Spring源码深度解析第二版

    Spring源码深度解析第二版 Spring是一款广泛应用于Java企业级应用程序的开源框架,旨在简化Java应用程序的开发和部署。Spring框架的核心主要包括了IoC容器、AOP、MVC框架等模块。 第1章 Spring整体架构和环境搭建 ...

    二、Spring源码分析——BeanFactory

    《Spring源码分析——BeanFactory》 在Java的IoC(Inversion of Control)和DI(Dependency Injection)领域,Spring框架扮演着至关重要的角色。BeanFactory是Spring的核心组件之一,它是容器的基石,负责管理应用...

    spring源码(注释+测试版)

    这份"spring源码(注释+测试版)"提供了Spring框架的源代码,带有注释和测试用例,对于开发者深入理解Spring的工作原理非常有帮助。 1. **spring-core**:这是Spring框架的基础模块,包含了核心的工具类和资源处理...

    五、Spring源码分析——Spring Aop

    《Spring AOP 源码分析》 在深入探讨Spring AOP之前,我们先要理解AOP(面向切面编程)的基本概念。AOP是一种编程范式,它将关注点分离,使得我们可以将横切关注点(如日志、事务管理、安全检查等)与业务逻辑解耦...

    三、Spring源码分析——ApplicationContext

    《Spring源码分析——ApplicationContext》 在Java世界中,Spring框架是不可或缺的一部分,它以其强大的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)特性,极大地...

    spring security源码分析.pdf

    ### Spring Security 源码分析知识点 #### 一、Spring Security 概述 Spring Security 是一个强大且可高度定制的身份验证和访问控制框架。它提供了许多功能,包括登录表单、记住密码、CSRF 保护等。为了更好地理解...

    spring源码缺失的jar包

    在Spring框架的开发和学习过程中,源码分析是提升技能的重要环节。然而,有时当我们尝试导入Spring的源码时,可能会遇到编译错误,这通常是因为缺少了必要的依赖jar包。这两个关键的jar包对于理解Spring的工作原理...

    Spring5.3.10底层源码分析

    Spring底层源码分析 SpringIoc加载流程分析 SpringBean对象的创建过程

    spring源码

    本文将围绕"Spring源码"这一主题,深入探讨Spring框架的核心概念、设计模式以及主要模块,旨在帮助你更好地掌握Spring技术。 首先,Spring框架的设计理念是依赖注入(Dependency Injection,DI),它是控制反转...

    Spring 源码分析,很好的希望大家有时间看看

    源码分析对于理解Spring的工作原理、优化应用性能以及进行二次开发至关重要。让我们深入探讨Spring框架的一些核心概念和机制。 1. **依赖注入(Dependency Injection,DI)**:Spring的核心特性之一,通过DI,...

    spring 源码分析

    通过源码分析Spring,可以帮助开发者深入理解Spring的运作机制,掌握其核心编程思想。 首先,BeanFactory是Spring中IOC容器的基础接口,它负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖关系。...

    spring源码全部uml类图

    在"spring源码全部uml类图"中,我们可以深入探讨Spring框架的内部结构和设计模式。 首先,Spring框架的核心组件包括IoC(Inversion of Control,控制反转)容器和AOP(Aspect-Oriented Programming,面向切面编程)...

Global site tag (gtag.js) - Google Analytics