code: public static URL getURL(String resourceLocation) throws FileNotFoundException {
          Assert.notNull(resourceLocation, "Resource location must not be null");
          if (resourceLocation.startsWith(CLASSPATH_URL_PREFIX)) {
              String path = resourceLocation.substring(CLASSPATH_URL_PREFIX.length());
              ClassLoader cl = ClassUtils.getDefaultClassLoader();
              URL url = (cl != null ? cl.getResource(path) : ClassLoader.getSystemResource(path));
              if (url == null) {
                  String description = "class path resource [" + path + "]";
                  throw new FileNotFoundException(description +
                          " cannot be resolved to URL because it does not exist");
              }
              return url;
          }
          try {
              // try URL
              return new URL(resourceLocation);
          } catch (MalformedURLException ex) {
              // no URL -> treat as file path
              try {
                  return new File(resourceLocation).toURI().toURL();
              } catch (MalformedURLException ex2) {
                  throw new FileNotFoundException("Resource location [" + resourceLocation +
                          "] is neither a URL not a well-formed file path");
              }
          }
      }
docs: Resolve the given resource location to a {@code java.net.URL}.
  <p>Does not check whether the URL actually exists; simply returns
  the URL that the given location would correspond to.
  
  @param resourceLocation the resource location to resolve: either a
  "classpath:" pseudo URL, a "file:" URL, or a plain file path
  @return a corresponding URL object
  @throws FileNotFoundException if the resource cannot be resolved to a URL