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