org.springframework.context.support

## Class StaticApplicationContext

- java.lang.Object
- - org.springframework.core.io.DefaultResourceLoader
  - - org.springframework.context.support.AbstractApplicationContext
    - - org.springframework.context.support.GenericApplicationContext
      - - org.springframework.context.support.StaticApplicationContext

- All Implemented Interfaces:
    Closeable, AutoCloseable, BeanFactory, DisposableBean, HierarchicalBeanFactory, ListableBeanFactory, BeanDefinitionRegistry, ApplicationContext, ApplicationEventPublisher, ConfigurableApplicationContext, Lifecycle, MessageSource, AliasRegistry, EnvironmentCapable, ResourceLoader, ResourcePatternResolver
  Direct Known Subclasses:
    StaticPortletApplicationContext, StaticWebApplicationContext

      public class StaticApplicationContext
      extends GenericApplicationContext

  `ApplicationContext` implementation which supports programmatic registration of beans and messages, rather than reading bean definitions from external configuration sources. Mainly useful for testing.
  Author:
    Rod Johnson, Juergen Hoeller
  See Also:
    `registerSingleton(java.lang.String, java.lang.Class<?>)`, `registerPrototype(java.lang.String, java.lang.Class<?>)`, `GenericApplicationContext.registerBeanDefinition(java.lang.String, org.springframework.beans.factory.config.BeanDefinition)`, `AbstractApplicationContext.refresh()`

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.springframework.core.io.DefaultResourceLoader

      `DefaultResourceLoader.ClassPathContextResource`

  - ### Field Summary

    - ### Fields inherited from class org.springframework.context.support.AbstractApplicationContext

      `APPLICATION_EVENT_MULTICASTER_BEAN_NAME, LIFECYCLE_PROCESSOR_BEAN_NAME, logger, MESSAGE_SOURCE_BEAN_NAME`

    - ### Fields inherited from interface org.springframework.context.ConfigurableApplicationContext

      `CONFIG_LOCATION_DELIMITERS, CONVERSION_SERVICE_BEAN_NAME, ENVIRONMENT_BEAN_NAME, LOAD_TIME_WEAVER_BEAN_NAME, SYSTEM_ENVIRONMENT_BEAN_NAME, SYSTEM_PROPERTIES_BEAN_NAME`

    - ### Fields inherited from interface org.springframework.beans.factory.BeanFactory

      `FACTORY_BEAN_PREFIX`

    - ### Fields inherited from interface org.springframework.core.io.support.ResourcePatternResolver

      `CLASSPATH_ALL_URL_PREFIX`

    - ### Fields inherited from interface org.springframework.core.io.ResourceLoader

      `CLASSPATH_URL_PREFIX`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `StaticApplicationContext()` Create a new StaticApplicationContext.
    `StaticApplicationContext(ApplicationContext parent)` Create a new StaticApplicationContext with the given parent.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addMessage(String code, Locale locale, String defaultMessage)` Associate the given message with the given code.
    `protected void` | `assertBeanFactoryActive()` Overridden to turn it into a no-op, to be more lenient towards test cases.
    `StaticMessageSource` | `getStaticMessageSource()` Return the internal StaticMessageSource used by this context.
    `void` | `registerPrototype(String name, Class<?> clazz)` Register a prototype bean with the underlying bean factory.
    `void` | `registerPrototype(String name, Class<?> clazz, MutablePropertyValues pvs)` Register a prototype bean with the underlying bean factory.
    `void` | `registerSingleton(String name, Class<?> clazz)` Register a singleton bean with the underlying bean factory.
    `void` | `registerSingleton(String name, Class<?> clazz, MutablePropertyValues pvs)` Register a singleton bean with the underlying bean factory.

    - ### Methods inherited from class org.springframework.context.support.GenericApplicationContext

      `cancelRefresh, closeBeanFactory, getBeanDefinition, getBeanFactory, getDefaultListableBeanFactory, getResource, getResources, isAlias, isBeanNameInUse, refreshBeanFactory, registerAlias, registerBeanDefinition, removeAlias, removeBeanDefinition, setAllowBeanDefinitionOverriding, setAllowCircularReferences, setId, setParent, setResourceLoader`

    - ### Methods inherited from class org.springframework.context.support.AbstractApplicationContext

      `addApplicationListener, addBeanFactoryPostProcessor, close, containsBean, containsBeanDefinition, containsLocalBean, createEnvironment, destroy, destroyBeans, doClose, findAnnotationOnBean, finishBeanFactoryInitialization, finishRefresh, getAliases, getApplicationListeners, getApplicationName, getAutowireCapableBeanFactory, getBean, getBean, getBean, getBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanFactoryPostProcessors, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeansOfType, getBeansOfType, getBeansWithAnnotation, getDisplayName, getEnvironment, getId, getInternalParentBeanFactory, getInternalParentMessageSource, getMessage, getMessage, getMessage, getParent, getParentBeanFactory, getResourcePatternResolver, getStartupDate, getType, initApplicationEventMulticaster, initLifecycleProcessor, initMessageSource, initPropertySources, invokeBeanFactoryPostProcessors, isActive, isPrototype, isRunning, isSingleton, isTypeMatch, obtainFreshBeanFactory, onClose, onRefresh, postProcessBeanFactory, prepareBeanFactory, prepareRefresh, publishEvent, refresh, registerBeanPostProcessors, registerListeners, registerShutdownHook, setDisplayName, setEnvironment, start, stop, toString`

    - ### Methods inherited from class org.springframework.core.io.DefaultResourceLoader

      `getClassLoader, getResourceByPath, setClassLoader`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface org.springframework.beans.factory.support.BeanDefinitionRegistry

      `containsBeanDefinition, getBeanDefinitionCount, getBeanDefinitionNames`

    - ### Methods inherited from interface org.springframework.core.AliasRegistry

      `getAliases`

    - ### Methods inherited from interface org.springframework.core.io.ResourceLoader

      `getClassLoader`

- - ### Constructor Detail

    - #### StaticApplicationContext

          public StaticApplicationContext()
                                   throws BeansException

      Create a new StaticApplicationContext.
      Throws:
        `BeansException`
      See Also:
        `registerSingleton(java.lang.String, java.lang.Class<?>)`, `registerPrototype(java.lang.String, java.lang.Class<?>)`, `GenericApplicationContext.registerBeanDefinition(java.lang.String, org.springframework.beans.factory.config.BeanDefinition)`, `AbstractApplicationContext.refresh()`

    - #### StaticApplicationContext

          public StaticApplicationContext(ApplicationContext parent)
                                   throws BeansException

      Create a new StaticApplicationContext with the given parent.
      Throws:
        `BeansException`
      See Also:
        `registerSingleton(java.lang.String, java.lang.Class<?>)`, `registerPrototype(java.lang.String, java.lang.Class<?>)`, `GenericApplicationContext.registerBeanDefinition(java.lang.String, org.springframework.beans.factory.config.BeanDefinition)`, `AbstractApplicationContext.refresh()`

  - ### Method Detail

    - #### assertBeanFactoryActive

          protected void assertBeanFactoryActive()

      Overridden to turn it into a no-op, to be more lenient towards test cases.
      Overrides:
        `assertBeanFactoryActive` in class `AbstractApplicationContext`

    - #### getStaticMessageSource

          public final StaticMessageSource getStaticMessageSource()

      Return the internal StaticMessageSource used by this context. Can be used to register messages on it.
      See Also:
        `addMessage(java.lang.String, java.util.Locale, java.lang.String)`

    - #### registerSingleton

          public void registerSingleton(String name,
                                        Class<?> clazz)
                                 throws BeansException

      Register a singleton bean with the underlying bean factory.

      For more advanced needs, register with the underlying BeanFactory directly.

      Throws:
        `BeansException`
      See Also:
        `GenericApplicationContext.getDefaultListableBeanFactory()`

    - #### registerSingleton

          public void registerSingleton(String name,
                                        Class<?> clazz,
                                        MutablePropertyValues pvs)
                                 throws BeansException

      Register a singleton bean with the underlying bean factory.

      For more advanced needs, register with the underlying BeanFactory directly.

      Throws:
        `BeansException`
      See Also:
        `GenericApplicationContext.getDefaultListableBeanFactory()`

    - #### registerPrototype

          public void registerPrototype(String name,
                                        Class<?> clazz)
                                 throws BeansException

      Register a prototype bean with the underlying bean factory.

      For more advanced needs, register with the underlying BeanFactory directly.

      Throws:
        `BeansException`
      See Also:
        `GenericApplicationContext.getDefaultListableBeanFactory()`

    - #### registerPrototype

          public void registerPrototype(String name,
                                        Class<?> clazz,
                                        MutablePropertyValues pvs)
                                 throws BeansException

      Register a prototype bean with the underlying bean factory.

      For more advanced needs, register with the underlying BeanFactory directly.

      Throws:
        `BeansException`
      See Also:
        `GenericApplicationContext.getDefaultListableBeanFactory()`

    - #### addMessage

          public void addMessage(String code,
                                 Locale locale,
                                 String defaultMessage)

      Associate the given message with the given code.
      Parameters:
        `code` - lookup code
        `locale` - locale message should be found within
        `defaultMessage` - message associated with this lookup code
      See Also:
        `getStaticMessageSource()`