org.springframework.boot.web.reactive.context

Class AnnotationConfigReactiveWebApplicationContext

  • java.lang.Object
    • org.springframework.core.io.DefaultResourceLoader
      • org.springframework.context.support.AbstractApplicationContext
        • org.springframework.context.support.GenericApplicationContext
          • org.springframework.context.annotation.AnnotationConfigApplicationContext
            • org.springframework.boot.web.reactive.context.AnnotationConfigReactiveWebApplicationContext
  • All Implemented Interfaces:
    Closeable, AutoCloseable, org.springframework.beans.factory.BeanFactory, org.springframework.beans.factory.HierarchicalBeanFactory, org.springframework.beans.factory.ListableBeanFactory, org.springframework.beans.factory.support.BeanDefinitionRegistry, ConfigurableReactiveWebApplicationContext, ReactiveWebApplicationContext, org.springframework.context.annotation.AnnotationConfigRegistry, org.springframework.context.ApplicationContext, org.springframework.context.ApplicationEventPublisher, org.springframework.context.ConfigurableApplicationContext, org.springframework.context.Lifecycle, org.springframework.context.MessageSource, org.springframework.core.AliasRegistry, org.springframework.core.env.EnvironmentCapable, org.springframework.core.io.ResourceLoader, org.springframework.core.io.support.ResourcePatternResolver


    public class AnnotationConfigReactiveWebApplicationContext
    extends org.springframework.context.annotation.AnnotationConfigApplicationContext
    implements ConfigurableReactiveWebApplicationContext
    ConfigurableReactiveWebApplicationContext that accepts annotated classes as input - in particular @Configuration-annotated classes, but also plain @Component classes and JSR-330 compliant classes using javax.inject annotations. Allows for registering classes one by one (specifying class names as config location) as well as for classpath scanning (specifying base packages as config location).

    Note: In case of multiple @Configuration classes, later @Bean definitions will override ones defined in earlier loaded files. This can be leveraged to deliberately override certain bean definitions via an extra Configuration class.

    Since:
    2.0.0
    Author:
    Phillip Webb, Stephane Nicoll
    See Also:
    AnnotationConfigApplicationContext
    • Nested Class Summary

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

        org.springframework.core.io.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, SHUTDOWN_HOOK_THREAD_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
      AnnotationConfigReactiveWebApplicationContext()
      Create a new AnnotationConfigReactiveWebApplicationContext that needs to be populated through AnnotationConfigApplicationContext.register(java.lang.Class<?>...) calls and then manually refreshed.
      AnnotationConfigReactiveWebApplicationContext(Class<?>... annotatedClasses)
      Create a new AnnotationConfigApplicationContext, deriving bean definitions from the given annotated classes and automatically refreshing the context.
      AnnotationConfigReactiveWebApplicationContext(org.springframework.beans.factory.support.DefaultListableBeanFactory beanFactory)
      Create a new AnnotationConfigApplicationContext with the given DefaultListableBeanFactory.
      AnnotationConfigReactiveWebApplicationContext(String... basePackages)
      Create a new AnnotationConfigApplicationContext, scanning for bean definitions in the given packages and automatically refreshing the context.
    • Method Summary

      All Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method and Description
      protected org.springframework.beans.factory.support.DefaultListableBeanFactory createBeanFactory()
      Deprecated. 
      since 2.2.0 since this class no longer extends AbstractRefreshableConfigApplicationContext.
      protected org.springframework.core.env.ConfigurableEnvironment createEnvironment() 
      protected void customizeBeanFactory(org.springframework.beans.factory.support.DefaultListableBeanFactory beanFactory)
      Deprecated. 
      since 2.2.0 since this class no longer extends AbstractRefreshableConfigApplicationContext.
      protected org.springframework.context.annotation.AnnotatedBeanDefinitionReader getAnnotatedBeanDefinitionReader(org.springframework.beans.factory.support.DefaultListableBeanFactory beanFactory)
      Deprecated. 
      since 2.2.0 since this class no longer extends AbstractRefreshableConfigApplicationContext
      protected org.springframework.beans.factory.support.BeanNameGenerator getBeanNameGenerator()
      Deprecated. 
      since 2.2.0 since this class no longer extends AbstractRefreshableConfigApplicationContext
      protected org.springframework.context.annotation.ClassPathBeanDefinitionScanner getClassPathBeanDefinitionScanner(org.springframework.beans.factory.support.DefaultListableBeanFactory beanFactory)
      Deprecated. 
      since 2.2.0 since this class no longer extends AbstractRefreshableConfigApplicationContext
      protected String[] getConfigLocations()
      Deprecated. 
      since 2.2.0 since this class no longer extends AbstractRefreshableConfigApplicationContext.
      protected String[] getDefaultConfigLocations()
      Deprecated. 
      since 2.2.0 since this class no longer extends AbstractRefreshableConfigApplicationContext.
      protected org.springframework.core.io.Resource getResourceByPath(String path) 
      protected org.springframework.context.annotation.ScopeMetadataResolver getScopeMetadataResolver()
      Deprecated. 
      since 2.2.0 since this class no longer extends AbstractRefreshableConfigApplicationContext
      protected boolean hasBeanFactory()
      Deprecated. 
      since 2.2.0 since this class no longer extends AbstractRefreshableConfigApplicationContext.
      protected void loadBeanDefinitions(org.springframework.beans.factory.support.DefaultListableBeanFactory beanFactory)
      Deprecated. 
      since 2.2.0 since this class no longer extends AbstractRefreshableConfigApplicationContext
      protected String resolvePath(String path)
      Deprecated. 
      since 2.2.0 since this class no longer extends AbstractRefreshableConfigApplicationContext.
      void setConfigLocation(String location)
      Deprecated. 
      since 2.2.0 since this class no longer extends AbstractRefreshableConfigApplicationContext. Use @ImportResource instead.
      void setConfigLocations(String... locations)
      Deprecated. 
      since 2.2.0 since this class no longer extends AbstractRefreshableConfigApplicationContext. Use @ImportResource instead.
      • Methods inherited from class org.springframework.context.annotation.AnnotationConfigApplicationContext

        register, registerBean, scan, setBeanNameGenerator, setEnvironment, setScopeMetadataResolver
      • Methods inherited from class org.springframework.context.support.GenericApplicationContext

        cancelRefresh, closeBeanFactory, getAutowireCapableBeanFactory, getBeanDefinition, getBeanFactory, getClassLoader, getDefaultListableBeanFactory, getResource, getResources, isAlias, isBeanNameInUse, refreshBeanFactory, registerAlias, registerBean, registerBean, registerBean, registerBean, registerBean, registerBeanDefinition, removeAlias, removeBeanDefinition, setAllowBeanDefinitionOverriding, setAllowCircularReferences, setClassLoader, setParent, setResourceLoader
      • Methods inherited from class org.springframework.context.support.AbstractApplicationContext

        addApplicationListener, addBeanFactoryPostProcessor, assertBeanFactoryActive, close, containsBean, containsBeanDefinition, containsLocalBean, destroy, destroyBeans, doClose, findAnnotationOnBean, finishBeanFactoryInitialization, finishRefresh, getAliases, getApplicationListeners, getApplicationName, getBean, getBean, getBean, getBean, getBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanFactoryPostProcessors, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanProvider, getBeanProvider, getBeansOfType, getBeansOfType, getBeansWithAnnotation, getDisplayName, getEnvironment, getId, getInternalParentBeanFactory, getInternalParentMessageSource, getMessage, getMessage, getMessage, getParent, getParentBeanFactory, getResourcePatternResolver, getStartupDate, getType, getType, initApplicationEventMulticaster, initLifecycleProcessor, initMessageSource, initPropertySources, invokeBeanFactoryPostProcessors, isActive, isPrototype, isRunning, isSingleton, isTypeMatch, isTypeMatch, obtainFreshBeanFactory, onClose, onRefresh, postProcessBeanFactory, prepareBeanFactory, prepareRefresh, publishEvent, publishEvent, publishEvent, refresh, registerBeanPostProcessors, registerListeners, registerShutdownHook, resetCommonCaches, setDisplayName, setId, start, stop, toString
      • Methods inherited from class org.springframework.core.io.DefaultResourceLoader

        addProtocolResolver, clearResourceCaches, getProtocolResolvers, getResourceCache
      • Methods inherited from interface org.springframework.context.ConfigurableApplicationContext

        addApplicationListener, addBeanFactoryPostProcessor, addProtocolResolver, close, getBeanFactory, getEnvironment, isActive, refresh, registerShutdownHook, setClassLoader, setEnvironment, setId, setParent
      • Methods inherited from interface org.springframework.context.Lifecycle

        isRunning, start, stop
      • Methods inherited from interface org.springframework.context.ApplicationContext

        getApplicationName, getAutowireCapableBeanFactory, getDisplayName, getId, getParent, getStartupDate
      • Methods inherited from interface org.springframework.beans.factory.ListableBeanFactory

        containsBeanDefinition, findAnnotationOnBean, getBeanDefinitionCount, getBeanDefinitionNames, getBeanNamesForAnnotation, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeanNamesForType, getBeansOfType, getBeansOfType, getBeansWithAnnotation
      • Methods inherited from interface org.springframework.beans.factory.HierarchicalBeanFactory

        containsLocalBean, getParentBeanFactory
      • Methods inherited from interface org.springframework.beans.factory.BeanFactory

        containsBean, getAliases, getBean, getBean, getBean, getBean, getBean, getBeanProvider, getBeanProvider, getType, getType, isPrototype, isSingleton, isTypeMatch, isTypeMatch
      • Methods inherited from interface org.springframework.context.MessageSource

        getMessage, getMessage, getMessage
      • Methods inherited from interface org.springframework.context.ApplicationEventPublisher

        publishEvent, publishEvent
      • Methods inherited from interface org.springframework.core.io.support.ResourcePatternResolver

        getResources
      • Methods inherited from interface org.springframework.core.io.ResourceLoader

        getClassLoader, getResource
      • Methods inherited from interface org.springframework.beans.factory.support.BeanDefinitionRegistry

        containsBeanDefinition, getBeanDefinitionCount, getBeanDefinitionNames
      • Methods inherited from interface org.springframework.core.AliasRegistry

        getAliases
    • Constructor Detail

      • AnnotationConfigReactiveWebApplicationContext

        public AnnotationConfigReactiveWebApplicationContext()
        Create a new AnnotationConfigReactiveWebApplicationContext that needs to be populated through AnnotationConfigApplicationContext.register(java.lang.Class<?>...) calls and then manually refreshed.
      • AnnotationConfigReactiveWebApplicationContext

        public AnnotationConfigReactiveWebApplicationContext(org.springframework.beans.factory.support.DefaultListableBeanFactory beanFactory)
        Create a new AnnotationConfigApplicationContext with the given DefaultListableBeanFactory.
        Parameters:
        beanFactory - the DefaultListableBeanFactory instance to use for this context
        Since:
        2.2.0
      • AnnotationConfigReactiveWebApplicationContext

        public AnnotationConfigReactiveWebApplicationContext(Class<?>... annotatedClasses)
        Create a new AnnotationConfigApplicationContext, deriving bean definitions from the given annotated classes and automatically refreshing the context.
        Parameters:
        annotatedClasses - one or more annotated classes, e.g. @Configuration classes
        Since:
        2.2.0
      • AnnotationConfigReactiveWebApplicationContext

        public AnnotationConfigReactiveWebApplicationContext(String... basePackages)
        Create a new AnnotationConfigApplicationContext, scanning for bean definitions in the given packages and automatically refreshing the context.
        Parameters:
        basePackages - the packages to check for annotated classes
        Since:
        2.2.0
    • Method Detail

      • createEnvironment

        protected org.springframework.core.env.ConfigurableEnvironment createEnvironment()
        Overrides:
        createEnvironment in class org.springframework.context.support.AbstractApplicationContext
      • getResourceByPath

        protected org.springframework.core.io.Resource getResourceByPath(String path)
        Overrides:
        getResourceByPath in class org.springframework.core.io.DefaultResourceLoader
      • getBeanNameGenerator

        @Deprecated
        protected final org.springframework.beans.factory.support.BeanNameGenerator getBeanNameGenerator()
        Deprecated. since 2.2.0 since this class no longer extends AbstractRefreshableConfigApplicationContext
        Return the custom BeanNameGenerator for use with AnnotatedBeanDefinitionReader and/or ClassPathBeanDefinitionScanner, if any.
        Returns:
        the bean name generator
      • getScopeMetadataResolver

        @Deprecated
        protected org.springframework.context.annotation.ScopeMetadataResolver getScopeMetadataResolver()
        Deprecated. since 2.2.0 since this class no longer extends AbstractRefreshableConfigApplicationContext
        Return the custom ScopeMetadataResolver for use with AnnotatedBeanDefinitionReader and/or ClassPathBeanDefinitionScanner, if any.
        Returns:
        the scope metadata resolver
      • loadBeanDefinitions

        @Deprecated
        protected void loadBeanDefinitions(org.springframework.beans.factory.support.DefaultListableBeanFactory beanFactory)
        Deprecated. since 2.2.0 since this class no longer extends AbstractRefreshableConfigApplicationContext
        Register a BeanDefinition for any classes specified by AnnotationConfigApplicationContext.register(Class...) and scan any packages specified by AnnotationConfigApplicationContext.scan(String...).

        For any values specified by setConfigLocation(String) or setConfigLocations(String[]), attempt first to load each location as a class, registering a BeanDefinition if class loading is successful, and if class loading fails (i.e. a ClassNotFoundException is raised), assume the value is a package and attempt to scan it for annotated classes.

        Enables the default set of annotation configuration post processors, such that @Autowired, @Required, and associated annotations can be used.

        Configuration class bean definitions are registered with generated bean definition names unless the value attribute is provided to the stereotype annotation.

        Parameters:
        beanFactory - the bean factory to load bean definitions into
        See Also:
        AnnotationConfigApplicationContext.register(Class...), AnnotationConfigApplicationContext.scan(String...), setConfigLocation(String), setConfigLocations(String[]), AnnotatedBeanDefinitionReader, ClassPathBeanDefinitionScanner
      • getAnnotatedBeanDefinitionReader

        @Deprecated
        protected org.springframework.context.annotation.AnnotatedBeanDefinitionReader getAnnotatedBeanDefinitionReader(org.springframework.beans.factory.support.DefaultListableBeanFactory beanFactory)
        Deprecated. since 2.2.0 since this class no longer extends AbstractRefreshableConfigApplicationContext
        Build an AnnotatedBeanDefinitionReader for the given bean factory.

        This should be pre-configured with the Environment (if desired) but not with a BeanNameGenerator or ScopeMetadataResolver yet.

        Parameters:
        beanFactory - the bean factory to load bean definitions into
        Returns:
        the annotated bean definition reader
        See Also:
        AbstractApplicationContext.getEnvironment(), getBeanNameGenerator(), getScopeMetadataResolver()
      • getClassPathBeanDefinitionScanner

        @Deprecated
        protected org.springframework.context.annotation.ClassPathBeanDefinitionScanner getClassPathBeanDefinitionScanner(org.springframework.beans.factory.support.DefaultListableBeanFactory beanFactory)
        Deprecated. since 2.2.0 since this class no longer extends AbstractRefreshableConfigApplicationContext
        Build a ClassPathBeanDefinitionScanner for the given bean factory.

        This should be pre-configured with the Environment (if desired) but not with a BeanNameGenerator or ScopeMetadataResolver yet.

        Parameters:
        beanFactory - the bean factory to load bean definitions into
        Returns:
        the class path bean definition scanner
        See Also:
        AbstractApplicationContext.getEnvironment(), getBeanNameGenerator(), getScopeMetadataResolver()
      • setConfigLocation

        @Deprecated
        public void setConfigLocation(String location)
        Deprecated. since 2.2.0 since this class no longer extends AbstractRefreshableConfigApplicationContext. Use @ImportResource instead.
        Set the config locations for this application context in init-param style, i.e. with distinct locations separated by commas, semicolons or whitespace.

        If not set, the implementation may use a default as appropriate.

        Parameters:
        location - the config location
      • setConfigLocations

        @Deprecated
        public void setConfigLocations(@Nullable
                                                   String... locations)
        Deprecated. since 2.2.0 since this class no longer extends AbstractRefreshableConfigApplicationContext. Use @ImportResource instead.
        Set the config locations for this application context.

        If not set, the implementation may use a default as appropriate.

        Parameters:
        locations - the config locations
      • getConfigLocations

        @Deprecated
        protected String[] getConfigLocations()
        Deprecated. since 2.2.0 since this class no longer extends AbstractRefreshableConfigApplicationContext.
        Return an array of resource locations, referring to the XML bean definition files that this context should be built with. Can also include location patterns, which will get resolved via a ResourcePatternResolver.

        The default implementation returns null. Subclasses can override this to provide a set of resource locations to load bean definitions from.

        Returns:
        an array of resource locations, or null if none
        See Also:
        GenericApplicationContext.getResources(java.lang.String), AbstractApplicationContext.getResourcePatternResolver()
      • getDefaultConfigLocations

        @Deprecated
        protected String[] getDefaultConfigLocations()
        Deprecated. since 2.2.0 since this class no longer extends AbstractRefreshableConfigApplicationContext.
        Return the default config locations to use, for the case where no explicit config locations have been specified.

        The default implementation returns null, requiring explicit config locations.

        Returns:
        an array of default config locations, if any
        See Also:
        setConfigLocations(java.lang.String...)
      • resolvePath

        @Deprecated
        protected String resolvePath(String path)
        Deprecated. since 2.2.0 since this class no longer extends AbstractRefreshableConfigApplicationContext.
        Resolve the given path, replacing placeholders with corresponding environment property values if necessary. Applied to config locations.
        Parameters:
        path - the original file path
        Returns:
        the resolved file path
        See Also:
        PropertyResolver.resolveRequiredPlaceholders(String)
      • hasBeanFactory

        @Deprecated
        protected final boolean hasBeanFactory()
        Deprecated. since 2.2.0 since this class no longer extends AbstractRefreshableConfigApplicationContext.
        Determine whether this context currently holds a bean factory, i.e. has been refreshed at least once and not been closed yet.
        Returns:
        true if the context holds a bean factory
      • createBeanFactory

        @Deprecated
        protected org.springframework.beans.factory.support.DefaultListableBeanFactory createBeanFactory()
        Deprecated. since 2.2.0 since this class no longer extends AbstractRefreshableConfigApplicationContext.
        Create an internal bean factory for this context. Called for each AbstractApplicationContext.refresh() attempt.

        The default implementation creates a DefaultListableBeanFactory with the internal bean factory of this context's parent as parent bean factory. Can be overridden in subclasses, for example to customize DefaultListableBeanFactory's settings.

        Returns:
        the bean factory for this context
        See Also:
        DefaultListableBeanFactory.setAllowBeanDefinitionOverriding(boolean), DefaultListableBeanFactory.setAllowEagerClassLoading(boolean), AbstractAutowireCapableBeanFactory.setAllowCircularReferences(boolean), AbstractAutowireCapableBeanFactory.setAllowRawInjectionDespiteWrapping(boolean)
      • customizeBeanFactory

        @Deprecated
        protected void customizeBeanFactory(org.springframework.beans.factory.support.DefaultListableBeanFactory beanFactory)
        Deprecated. since 2.2.0 since this class no longer extends AbstractRefreshableConfigApplicationContext.
        Customize the internal bean factory used by this context. Called for each AbstractApplicationContext.refresh() attempt.

        The default implementation applies this context's "allowBeanDefinitionOverriding" and "allowCircularReferences" settings, if specified. Can be overridden in subclasses to customize any of DefaultListableBeanFactory's settings.

        Parameters:
        beanFactory - the newly created bean factory for this context
        See Also:
        DefaultListableBeanFactory.setAllowBeanDefinitionOverriding(boolean), AbstractAutowireCapableBeanFactory.setAllowCircularReferences(boolean), AbstractAutowireCapableBeanFactory.setAllowRawInjectionDespiteWrapping(boolean), DefaultListableBeanFactory.setAllowEagerClassLoading(boolean)

Copyright © 2020 Pivotal Software, Inc.. All rights reserved.