spring源码解析(1)Resource
2021/9/13 17:34:42
本文主要是介绍spring源码解析(1)Resource,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
大家知道,spring项目一般都有一个resources目录,一般存一些配置文件。
为了读取这些文件,spring设计了Resource接口,定义了三个方法?
存在?可读吗?可打开吗?
并定义了Resource对象到URL、URI和File对象和文件名字符串的转换
public interface Resource extends InputStreamSource { boolean exists(); default boolean isReadable() { return this.exists(); } default boolean isOpen() { return false; } default boolean isFile() { return false; } URL getURL() throws IOException; URI getURI() throws IOException; File getFile() throws IOException; default ReadableByteChannel readableChannel() throws IOException { return Channels.newChannel(this.getInputStream()); } long contentLength() throws IOException; long lastModified() throws IOException; Resource createRelative(String var1) throws IOException; @Nullable String getFilename(); String getDescription(); }
这个类只有一个父类,InputStreamSource,也就是说Resource可以任意向Inputstream对象来进行转化
public interface InputStreamSource { InputStream getInputStream() throws IOException; }
对于不同的文件类型,都有不同的子类实现:
文件:FileSystemResource
classpath资源:ClassPathResouce
URL资源:UrlResource
InputStream资源:InputstreamResource
Byte数组:ByteArrayResource
大家最常用的应该是
Resouce resouce=new ClassPathResouce('*.properties');
InputStream in=resouce.getInputStream();
其底层是通过java提供的class或classLoader将文件对象解析成InputStream
这篇关于spring源码解析(1)Resource的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南