KickJava   Java API By Example, From Geeks To Geeks.

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


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.factory.HierarchicalBeanFactory;
20 import org.springframework.beans.factory.ListableBeanFactory;
21 import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
22 import org.springframework.core.io.support.ResourcePatternResolver;
23
24 /**
25  * Central interface to provide configuration for an application.
26  * This is read-only while the application is running, but may be
27  * reloaded if the implementation supports this.
28  *
29  * <p>An ApplicationContext provides:
30  * <ul>
31  * <li>Bean factory methods for accessing application components.
32  * Inherited from {@link org.springframework.beans.factory.ListableBeanFactory}.
33  * <li>The ability to load file resources in a generic fashion.
34  * Inherited from the {@link org.springframework.core.io.ResourceLoader} interface.
35  * <li>The ability to publish events to registered listeners.
36  * Inherited from the {@link ApplicationEventPublisher} interface.
37  * <li>The ability to resolve messages, supporting internationalization.
38  * Inherited from the {@link MessageSource} interface.
39  * <li>Inheritance from a parent context. Definitions in a descendant context
40  * will always take priority. This means, for example, that a single parent
41  * context can be used by an entire web application, while each servlet has
42  * its own child context that is independent of that of any other servlet.
43  * </ul>
44  *
45  * <p>In addition to standard {@link org.springframework.beans.factory.BeanFactory}
46  * lifecycle capabilities, ApplicationContext implementations detect and invoke
47  * {@link ApplicationContextAware} beans as well as {@link ResourceLoaderAware},
48  * {@link ApplicationEventPublisherAware} and {@link MessageSourceAware} beans.
49  *
50  * @author Rod Johnson
51  * @author Juergen Hoeller
52  * @see ConfigurableApplicationContext
53  * @see org.springframework.beans.factory.BeanFactory
54  * @see org.springframework.core.io.ResourceLoader
55  */

56 public interface ApplicationContext extends ListableBeanFactory, HierarchicalBeanFactory,
57         MessageSource, ApplicationEventPublisher, ResourcePatternResolver {
58
59     /**
60      * Return the parent context, or <code>null</code> if there is no parent
61      * and this is the root of the context hierarchy.
62      * @return the parent context, or <code>null</code> if there is no parent
63      */

64     ApplicationContext getParent();
65
66     /**
67      * Expose AutowireCapableBeanFactory functionality for this context.
68      * <p>This is not typically used by application code, except for the purpose
69      * of initializing bean instances that live outside the application context,
70      * applying the Spring bean lifecycle (fully or partly) to them.
71      * <p>Alternatively, the internal BeanFactory exposed by the
72      * {@link ConfigurableApplicationContext} interface offers access to the
73      * AutowireCapableBeanFactory interface too. The present method mainly
74      * serves as convenient, specific facility on the ApplicationContext
75      * interface itself.
76      * @return the AutowireCapableBeanFactory for this context
77      * @throws IllegalStateException if the context does not support
78      * the AutowireCapableBeanFactory interface or does not hold an autowire-capable
79      * bean factory yet (usually if <code>refresh()</code> has never been called)
80      * @see ConfigurableApplicationContext#refresh()
81      * @see ConfigurableApplicationContext#getBeanFactory()
82      */

83     AutowireCapableBeanFactory getAutowireCapableBeanFactory() throws IllegalStateException JavaDoc;
84
85     /**
86      * Return a friendly name for this context.
87      * @return a display name for this context
88     */

89     String JavaDoc getDisplayName();
90
91     /**
92      * Return the timestamp when this context was first loaded.
93      * @return the timestamp (ms) when this context was first loaded
94      */

95     long getStartupDate();
96
97 }
98
Popular Tags