1 /* 2 * Copyright 2002-2007 the original author or authors. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package org.springframework.core.io; 18 19 /** 20 * {@link ResourceLoader} implementation that resolves plain paths as 21 * file system resources rather than as class path resources 22 * (the latter is {@link DefaultResourceLoader}'s default strategy). 23 * 24 * <p><b>NOTE:</b> Plain paths will always be interpreted as relative 25 * to the current VM working directory, even if they start with a slash. 26 * (This is consistent with the semantics in a Servlet container.) 27 * <b>Use an explicit "file:" prefix to enforce an absolute file path.</b> 28 * 29 * <p>{@link org.springframework.context.support.FileSystemXmlApplicationContext} 30 * is a full-fledged ApplicationContext implementation that provides 31 * the same resource path resolution strategy. 32 * 33 * @author Juergen Hoeller 34 * @since 1.1.3 35 * @see DefaultResourceLoader 36 * @see org.springframework.context.support.FileSystemXmlApplicationContext 37 */ 38 public class FileSystemResourceLoader extends DefaultResourceLoader { 39 40 /** 41 * Resolve resource paths as file system paths. 42 * <p>Note: Even if a given path starts with a slash, it will get 43 * interpreted as relative to the current VM working directory. 44 * @param path path to the resource 45 * @return Resource handle 46 * @see FileSystemResource 47 * @see org.springframework.web.context.support.ServletContextResourceLoader#getResourceByPath 48 */ 49 protected Resource getResourceByPath(String path) { 50 if (path != null && path.startsWith("/")) { 51 path = path.substring(1); 52 } 53 return new FileSystemResource(path); 54 } 55 56 } 57