Interface ClassPathResourceLoader

All Superinterfaces:
ResourceLoader
All Known Implementing Classes:
ClassClassPathResourceLoader, ClassLoaderClassPathResourceLoader, CombinedClassPathResourceLoader, DefaultClassPathResourceLoader

@NullMarked public interface ClassPathResourceLoader extends ResourceLoader
Abstraction to load resources from the classpath.
Since:
1.0
Author:
James Kleeh, Graeme Rocher
  • Method Details

    • handleResourceDuplicates

      default void handleResourceDuplicates(String resourceName, URL chosen, List<URL> duplicates)
      Hook to handle duplicate resources for ResourceLoadStrategyType.FIRST_MATCH. Default implementation is a no-op.
      Parameters:
      resourceName - The resource name
      chosen - The chosen resource URL
      duplicates - The duplicate resource URLs
      Since:
      5.0.0
    • getClassLoader

      ClassLoader getClassLoader()
      Returns the underlying classloader used by this ClassPathResourceLoader.
      Returns:
      The underlying classloader used by this ClassPathResourceLoader
    • supportsPrefix

      default boolean supportsPrefix(String path)
      Specified by:
      supportsPrefix in interface ResourceLoader
      Parameters:
      path - The path to a resource including a prefix appended by a colon. Ex (classpath:, file:)
      Returns:
      Whether the given resource loader supports the prefix
    • defaultLoader

      static ClassPathResourceLoader defaultLoader(@Nullable ClassLoader classLoader)
      Return the default ClassPathResourceLoader for the given class loader.
      Parameters:
      classLoader - The classloader
      Returns:
      The default loader
    • listUniqueResources

      static List<URL> listUniqueResources(ResourceLoader resourceLoader, String name)
      List resources for the given name, handling duplicate URLs and implementations that may return null.
      Parameters:
      resourceLoader - The resource loader
      name - The resource name
      Returns:
      An immutable list of unique URLs in encounter order
      Since:
      5.0.0
    • resolveResources

      static List<URL> resolveResources(ResourceLoader resourceLoader, String name, ResourceLoadStrategy strategy)
      Resolve resources for the given name, applying the configured strategy.
      Parameters:
      resourceLoader - The resource loader
      name - The resource name
      strategy - The strategy
      Returns:
      An immutable list of unique URLs in encounter order
      Throws:
      ResourceDuplicateException - If multiple resources are found and the configured strategy is ResourceLoadStrategyType.FAIL_ON_DUPLICATE
      ResourceConflictException - If multiple resources are found and the configured strategy is ResourceLoadStrategyType.MERGE_ALL
      Since:
      5.0.0