大纲,本篇主要介绍Spring Resource相关
一:Resource相关
二:ResourceLoader相关
三:Resource ant加载模式相关
一:Resource相关
首先看下Resource有哪些常用的方法:
看下Resource的类图:
从上面的类图中我们介绍下常用的一些类
UrlResource:
访问网络资源的实现类。以下面几种开头http: ftp: file:如:http://myserver/logo.png
ClassPathResource:
访问类加载路径里资源的实现类。效果类似于this.getClass().getResource("/").getPath();
FileSystemResource:
访问文件系统里资源的实现类。如:file:/data/config.xml
ServletContextResource:
访问相对于 ServletContext 路径里的资源的实现类,path必须以“/”开头,如:/WEB-INF/web.xml
效果类似于request.getServletContext().getRealPath("");
InputStreamResource:
访问输入流资源的实现类。
ByteArrayResource:
访问字节数组资源的实现类。
二:ResourceLoader相关
ResourceLoader中含有一个Resource对象,所以它的主要功能是getResource()功能。
可以看到ResourcePatternResolver 在ResourceLoader上封装了一层,支持多资源加载,更值得一说的是它还支持Ant格式的路径。
ResourcePatternResolver 的实现类:
三:Resource ant加载模式相关
Ant路径通配符支持“?”、“*”、“**”,注意通配符匹配不包括目录分隔符“/”:
“?”:匹配一个字符,如“config?.xml”将匹配“config1.xml”;
“*”:匹配零个或多个字符串,如“cn/*/config.xml”将匹配“cn/javass/config.xml”,但不匹配匹配“cn/config.xml”;而“cn/config-*.xml”将匹配“cn/config-dao.xml”;
“**”:匹配路径中的零个或多个目录,如“cn/**/config.xml”将匹配“cn /config.xml”,也匹配“cn/javass/spring/config.xml”;而“cn/javass/config-**.xml”将匹配“cn/javass/config-dao.xml”,即把“**”当做两个“*”处理。
“classpath*:”用于加载所有匹配的类路径Resource