spring源码分析之spring-core-io

1. 看一下源码整体结构:

抓住主要点Resource、ResourceLoader和ResourceEditor

其中Resource作用

 Interface for a resource descriptor that abstracts from the actual type of underlying resource, such as a file or class path resource.

<p>An InputStream can be opened for every resource if it exists in physical form, but a URL or File handle can just be returned for

certain resources. The actual behavior is implementation-specific.

ResourceLoader的作用

Strategy interface for loading resources (e.. class path or file system resources). An {@link org.springframework.context.ApplicationContext}
 is required to provide this functionality, plus extended {@link org.springframework.core.io.support.ResourcePatternResolver} support.

 <p>{@link DefaultResourceLoader} is a standalone implementation that is usable outside an ApplicationContext, also used by {@link ResourceEditor}. 

<p>Bean properties of type Resource and Resource array can be populated from Strings when running in an ApplicationContext, using the particular context's resource loading strategy.

ResourceEditor作用

{@link java.beans.PropertyEditor Editor} for {@link Resource}descriptors, to automatically convert {@code String} locations e.g. {@code file:C:/myfile.txt} or {@code classpath:myfile.txt} to{@code Resource} properties instead of using a {@code String} location property.<p>The path may contain {@code ${...}} placeholders, to be resolved as {@link org.springframework.core.env.Environment} properties:
e.g. {@code ${user.dir}}. Unresolvable placeholders are ignored by default.<p>Delegates to a {@link ResourceLoader} to do the heavy lifting,
by default using a {@link DefaultResourceLoader}.

原文地址:https://www.cnblogs.com/davidwang456/p/5659996.html