KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > springframework > context > ResourceLoaderAware


1 /*
2  * Copyright 2002-2006 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.context;
18
19 import org.springframework.core.io.ResourceLoader;
20
21 /**
22  * Interface to be implemented by any object that wishes to be notified of
23  * the <b>ResourceLoader</b> (typically the ApplicationContext) that it runs in.
24  * This is an alternative to a full ApplicationContext dependency via the
25  * ApplicationContextAware interface.
26  *
27  * <p>Note that Resource dependencies can also be exposed as bean properties
28  * of type Resource, populated via Strings with automatic type conversion by
29  * the bean factory. This removes the need for implementing any callback
30  * interface just for the purpose of accessing a specific file resource.
31  *
32  * <p>You typically need a ResourceLoader when your application object has
33  * to access a variety of file resources whose names are calculated. A good
34  * strategy is to make the object use a DefaultResourceLoader but still
35  * implement ResourceLoaderAware to allow for overriding when running in an
36  * ApplicationContext. See ReloadableResourceBundleMessageSource for an example.
37  *
38  * <p>A passed-in ResourceLoader can also be checked for the
39  * <b>ResourcePatternResolver</b> interface and cast accordingly, to be able
40  * to resolve resource patterns into arrays of Resource objects. This will always
41  * work when running in an ApplicationContext (the context interface extends
42  * ResourcePatternResolver). Use a PathMatchingResourcePatternResolver as default.
43  * See also the <code>ResourcePatternUtils.getResourcePatternResolver</code> method.
44  *
45  * <p>As alternative to a ResourcePatternResolver dependency, consider exposing
46  * bean properties of type Resource array, populated via pattern Strings with
47  * automatic type conversion by the bean factory.
48  *
49  * @author Juergen Hoeller
50  * @since 10.03.2004
51  * @see ApplicationContextAware
52  * @see org.springframework.beans.factory.InitializingBean
53  * @see org.springframework.core.io.Resource
54  * @see org.springframework.core.io.support.ResourcePatternResolver
55  * @see org.springframework.core.io.support.ResourcePatternUtils#getResourcePatternResolver
56  * @see org.springframework.core.io.DefaultResourceLoader
57  * @see org.springframework.core.io.support.PathMatchingResourcePatternResolver
58  * @see org.springframework.context.support.ReloadableResourceBundleMessageSource
59  */

60 public interface ResourceLoaderAware {
61
62     /**
63      * Set the ResourceLoader that this object runs in.
64      * <p>This might be a ResourcePatternResolver, which can be checked
65      * through <code>instanceof ResourcePatternResolver</code>. See also the
66      * <code>ResourcePatternUtils.getResourcePatternResolver</code> method.
67      * <p>Invoked after population of normal bean properties but before an init callback
68      * like InitializingBean's <code>afterPropertiesSet</code> or a custom init-method.
69      * Invoked before ApplicationContextAware's <code>setApplicationContext</code>.
70      * @param resourceLoader ResourceLoader object to be used by this object
71      * @see org.springframework.core.io.support.ResourcePatternResolver
72      * @see org.springframework.core.io.support.ResourcePatternUtils#getResourcePatternResolver
73      */

74     void setResourceLoader(ResourceLoader resourceLoader);
75
76 }
77
Popular Tags