La interfaz ResourcePatternResolver
es una extensión de la interfaz ResourceLoader
que
define una estrategia para resolver un patrón de ubicación (como un patrón de ruta estilo Ant) en objetos de Resource
.
interfaz pública ResourcePatternResolver extiende ResourceLoader {
Cadena CLASSPATH_ALL_URL_PREFIX = "classpath*:";
Resource[] getResources(String locationPattern) lanza IOException;
}
Como puede ver arriba, esta interfaz también define un prefijo de recurso especial classpath*:
para
todos los recursos coincidentes en el classpath. Tenga en cuenta que en este caso la ubicación del recurso debe ser
una ruta sin marcadores de posición, por ejemplo, classpath*:/config/beans.xml
. Los archivos JAR o
diferentes directorios en la ruta de clase pueden contener varios archivos con la misma ruta y el mismo nombre.
El ResourceLoader
pasado (por ejemplo, proporcionado a través de la semántica
ResourceLoaderAware
) se puede verificar para ver si implementa esta interfaz extendida.
PathMatchingResourcePatternResolver
es una implementación independiente que se puede usar fuera de
ApplicationContext
y también la usa ResourceArrayPropertyEditor
para completar las
propiedades del Resource[]
beans. PathMatchingResourcePatternResolver
puede resolver
una ruta de ubicación de recurso especificada en uno o más objetos de correspondientes Resource
La
ruta de origen puede ser una ruta simple que tenga un Mapeo -a-uno al Recurso
de destino, o puede
contener un prefijo especial classpath*
:, y/o expresiones estándar internas de estilo Ant (asignadas
usando el org.springframework.util.AntPathMatcher
en Spring). Ambas últimas opciones son en realidad
comodines.
ResourceLoader
por defecto en cualquier ApplicationContext
estándar es en realidad
una instancia de un PathMatchingResourcePatternResolver
que implementa el
ResourcePatternResolver
interfaz. Lo mismo ocurre con la instancia ApplicationContext
, que
también implementa la interfaz ResourcePatternResolver
y la delega al PathMatchingResourcePatternResolver
estándar.
GO TO FULL VERSION