org.springframework.context

Interface ConfigurableApplicationContext

    • Method Detail

      • setId

        void setId(java.lang.String id)
        Set the unique id of this application context.
        Since:
        3.0
      • setParent

        void setParent(@Nullable
                       ApplicationContext parent)
        Set the parent of this application context.

        Note that the parent shouldn't be changed: It should only be set outside a constructor if it isn't available when an object of this class is created, for example in case of WebApplicationContext setup.

        Parameters:
        parent - the parent context
        See Also:
        ConfigurableWebApplicationContext
      • setEnvironment

        void setEnvironment(ConfigurableEnvironment environment)
        Set the Environment for this application context.
        Parameters:
        environment - the new environment
        Since:
        3.1
      • addBeanFactoryPostProcessor

        void addBeanFactoryPostProcessor(BeanFactoryPostProcessor postProcessor)
        Add a new BeanFactoryPostProcessor that will get applied to the internal bean factory of this application context on refresh, before any of the bean definitions get evaluated. To be invoked during context configuration.
        Parameters:
        postProcessor - the factory processor to register
      • addApplicationListener

        void addApplicationListener(ApplicationListener<?> listener)
        Add a new ApplicationListener that will be notified on context events such as context refresh and context shutdown.

        Note that any ApplicationListener registered here will be applied on refresh if the context is not active yet, or on the fly with the current event multicaster in case of a context that is already active.

        Parameters:
        listener - the ApplicationListener to register
        See Also:
        ContextRefreshedEvent, ContextClosedEvent
      • addProtocolResolver

        void addProtocolResolver(ProtocolResolver resolver)
        Register the given protocol resolver with this application context, allowing for additional resource protocols to be handled.

        Any such resolver will be invoked ahead of this context's standard resolution rules. It may therefore also override any default rules.

        Since:
        4.3
      • refresh

        void refresh()
              throws BeansException,
                     java.lang.IllegalStateException
        Load or refresh the persistent representation of the configuration, which might an XML file, properties file, or relational database schema.

        As this is a startup method, it should destroy already created singletons if it fails, to avoid dangling resources. In other words, after invocation of that method, either all or no singletons at all should be instantiated.

        Throws:
        BeansException - if the bean factory could not be initialized
        java.lang.IllegalStateException - if already initialized and multiple refresh attempts are not supported
      • registerShutdownHook

        void registerShutdownHook()
        Register a shutdown hook with the JVM runtime, closing this context on JVM shutdown unless it has already been closed at that time.

        This method can be called multiple times. Only one shutdown hook (at max) will be registered for each context instance.

        See Also:
        Runtime.addShutdownHook(java.lang.Thread), close()
      • close

        void close()
        Close this application context, releasing all resources and locks that the implementation might hold. This includes destroying all cached singleton beans.

        Note: Does not invoke close on a parent context; parent contexts have their own, independent lifecycle.

        This method can be called multiple times without side effects: Subsequent close calls on an already closed context will be ignored.

        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
      • isActive

        boolean isActive()
        Determine whether this application context is active, that is, whether it has been refreshed at least once and has not been closed yet.
        Returns:
        whether the context is still active
        See Also:
        refresh(), close(), getBeanFactory()
      • getBeanFactory

        ConfigurableListableBeanFactory getBeanFactory()
                                                throws java.lang.IllegalStateException
        Return the internal bean factory of this application context. Can be used to access specific functionality of the underlying factory.

        Note: Do not use this to post-process the bean factory; singletons will already have been instantiated before. Use a BeanFactoryPostProcessor to intercept the BeanFactory setup process before beans get touched.

        Generally, this internal factory will only be accessible while the context is active, that is, in-between refresh() and close(). The isActive() flag can be used to check whether the context is in an appropriate state.

        Returns:
        the underlying bean factory
        Throws:
        java.lang.IllegalStateException - if the context does not hold an internal bean factory (usually if refresh() hasn't been called yet or if close() has already been called)
        See Also:
        isActive(), refresh(), close(), addBeanFactoryPostProcessor(org.springframework.beans.factory.config.BeanFactoryPostProcessor)