KickJava   Java API By Example, From Geeks To Geeks.

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


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.context;
18
19 import org.springframework.beans.BeansException;
20
21 /**
22  * Interface to be implemented by any object that wishes to be notified
23  * of the {@link ApplicationContext} that it runs in.
24  *
25  * <p>Implementing this interface makes sense for example when an object
26  * requires access to a set of collaborating beans. Note that configuration
27  * via bean references is preferable to implementing this interface just
28  * for bean lookup purposes.
29  *
30  * <p>This interface can also be implemented if an object needs access to file
31  * resources, i.e. wants to call <code>getResource</code>, wants to publish
32  * an application event, or requires access to the MessageSource. However,
33  * it is preferable to implement the more specific {@link ResourceLoaderAware},
34  * {@link ApplicationEventPublisherAware} or {@link MessageSourceAware} interface
35  * in such a specific scenario.
36  *
37  * <p>Note that file resource dependencies can also be exposed as bean properties
38  * of type {@link org.springframework.core.io.Resource}, populated via Strings
39  * with automatic type conversion by the bean factory. This removes the need
40  * for implementing any callback interface just for the purpose of accessing
41  * a specific file resource.
42  *
43  * <p>{@link org.springframework.context.support.ApplicationObjectSupport} is a
44  * convenience base class for application objects, implementing this interface.
45  *
46  * <p>For a list of all bean lifecycle methods, see the
47  * {@link org.springframework.beans.factory.BeanFactory BeanFactory javadocs}.
48  *
49  * @author Rod Johnson
50  * @author Juergen Hoeller
51  * @see ResourceLoaderAware
52  * @see ApplicationEventPublisherAware
53  * @see MessageSourceAware
54  * @see org.springframework.context.support.ApplicationObjectSupport
55  * @see org.springframework.beans.factory.BeanFactoryAware
56  */

57 public interface ApplicationContextAware {
58     
59     /**
60      * Set the ApplicationContext that this object runs in.
61      * Normally this call will be used to initialize the object.
62      * <p>Invoked after population of normal bean properties but before an init callback such
63      * as {@link org.springframework.beans.factory.InitializingBean#afterPropertiesSet()}
64      * or a custom init-method. Invoked after {@link ResourceLoaderAware#setResourceLoader},
65      * {@link ApplicationEventPublisherAware#setApplicationEventPublisher} and
66      * {@link MessageSourceAware}, if applicable.
67      * @param applicationContext the ApplicationContext object to be used by this object
68      * @throws ApplicationContextException in case of context initialization errors
69      * @throws BeansException if thrown by application context methods
70      * @see org.springframework.beans.factory.BeanInitializationException
71      */

72     void setApplicationContext(ApplicationContext applicationContext) throws BeansException;
73
74 }
75
Popular Tags