Package org.springframework.batch.core.configuration.support

# Class AbstractApplicationContextFactory

java.lang.Object
org.springframework.batch.core.configuration.support.AbstractApplicationContextFactory

All Implemented Interfaces:
  `ApplicationContextFactory`, `org.springframework.beans.factory.Aware`, `org.springframework.context.ApplicationContextAware`

Direct Known Subclasses:
  `GenericApplicationContextFactory`

public abstract class AbstractApplicationContextFactory extends Object implements ApplicationContextFactory, org.springframework.context.ApplicationContextAware
`ApplicationContextFactory` implementation that takes a parent context and a path to the context to create. When createApplicationContext method is called, the child `ApplicationContext` will be returned. The child context is not re-created every time it is requested, it is lazily initialized and cached. Clients should ensure that it is closed when it is no longer needed. If a path is not set, the parent will always be returned.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AbstractApplicationContextFactory(Object... resource)`
  Create a factory instance with the resource specified.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `org.springframework.context.ConfigurableApplicationContext`
  `createApplicationContext()`
  Creates an `ApplicationContext` from the provided path.
  `protected abstract org.springframework.context.ConfigurableApplicationContext`
  `createApplicationContext(org.springframework.context.ConfigurableApplicationContext parent, Object... resources)`
  `boolean`
  `equals(Object obj)`
  `protected final Collection<Class<? extends org.springframework.beans.factory.config.BeanFactoryPostProcessor>>`
  `getBeanFactoryPostProcessorClasses()`
  Protected access to the list of bean factory post processor classes that should be copied over to the context from the parent.
  `int`
  `hashCode()`
  `protected final boolean`
  `isCopyConfiguration()`
  Protected access for subclasses to the flag determining whether configuration should be copied from parent context.
  `protected void`
  `prepareBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory parent, org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)`
  Extension point for special subclasses that want to do more complex things with the bean factory prior to refresh.
  `protected void`
  `prepareContext(org.springframework.context.ConfigurableApplicationContext parent, org.springframework.context.ConfigurableApplicationContext context)`
  Extension point for special subclasses that want to do more complex things with the context prior to refresh.
  `void`
  `setApplicationContext(org.springframework.context.ApplicationContext applicationContext)`
  Setter for the parent application context.
  `void`
  `setBeanFactoryPostProcessorClasses(Class<? extends org.springframework.beans.factory.config.BeanFactoryPostProcessor>[] beanFactoryPostProcessorClasses)`
  Determines which bean factory post processors (like property placeholders) should be copied from the parent context.
  `void`
  `setBeanPostProcessorExcludeClasses(Class<?>[] beanPostProcessorExcludeClasses)`
  Determines by exclusion which bean post processors should be copied from the parent context.
  `void`
  `setCopyConfiguration(boolean copyConfiguration)`
  Flag to indicate that configuration such as bean post processors and custom editors should be copied from the parent context.
  `String`
  `toString()`

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

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

- ## Constructor Details

  - ### AbstractApplicationContextFactory

    public AbstractApplicationContextFactory(Object... resource)
    Create a factory instance with the resource specified. The resources are Spring configuration files or java packages containing configuration files.
    Parameters:
      `resource` - resource to be used in the creation of the ApplicationContext.

- ## Method Details

  - ### setCopyConfiguration

    public void setCopyConfiguration(boolean copyConfiguration)
    Flag to indicate that configuration such as bean post processors and custom editors should be copied from the parent context. Defaults to true.
    Parameters:
      `copyConfiguration` - the flag value to set

  - ### isCopyConfiguration

    protected final boolean isCopyConfiguration()
    Protected access for subclasses to the flag determining whether configuration should be copied from parent context.
    Returns:
      the flag value

  - ### setBeanFactoryPostProcessorClasses

    public void setBeanFactoryPostProcessorClasses(Class<? extends org.springframework.beans.factory.config.BeanFactoryPostProcessor>[] beanFactoryPostProcessorClasses)
    Determines which bean factory post processors (like property placeholders) should be copied from the parent context. Defaults to `PropertySourcesPlaceholderConfigurer` and `CustomEditorConfigurer`.
    Parameters:
      `beanFactoryPostProcessorClasses` - array of post processor types to be copied

  - ### setBeanPostProcessorExcludeClasses

    public void setBeanPostProcessorExcludeClasses(Class<?>[] beanPostProcessorExcludeClasses)
    Determines by exclusion which bean post processors should be copied from the parent context. Defaults to `BeanFactoryAware` (so any post processors that have a reference to the parent bean factory are not copied into the child). Note that these classes do not themselves have to be `BeanPostProcessor` implementations or sub-interfaces.
    Parameters:
      `beanPostProcessorExcludeClasses` - the classes to set

  - ### getBeanFactoryPostProcessorClasses

    protected final Collection<Class<? extends org.springframework.beans.factory.config.BeanFactoryPostProcessor>> getBeanFactoryPostProcessorClasses()
    Protected access to the list of bean factory post processor classes that should be copied over to the context from the parent.
    Returns:
      the classes for post processors that were nominated for copying

  - ### setApplicationContext

    public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext) throws org.springframework.beans.BeansException
    Setter for the parent application context.
    Specified by:
      `setApplicationContext` in interface `org.springframework.context.ApplicationContextAware`
    Throws:
      `org.springframework.beans.BeansException`
    See Also:
      - `ApplicationContextAware.setApplicationContext(org.springframework.context.ApplicationContext)`

  - ### createApplicationContext

    public org.springframework.context.ConfigurableApplicationContext createApplicationContext()
    Creates an `ApplicationContext` from the provided path.
    Specified by:
      `createApplicationContext` in interface `ApplicationContextFactory`
    See Also:
      - `ApplicationContextFactory.createApplicationContext()`

  - ### createApplicationContext

    protected abstract org.springframework.context.ConfigurableApplicationContext createApplicationContext(org.springframework.context.ConfigurableApplicationContext parent, Object... resources)

  - ### prepareContext

    protected void prepareContext(org.springframework.context.ConfigurableApplicationContext parent, org.springframework.context.ConfigurableApplicationContext context)
    Extension point for special subclasses that want to do more complex things with the context prior to refresh. The default implementation does nothing.
    Parameters:
      `parent` - the parent for the new application context
      `context` - the new application context before it is refreshed, but after bean factory is initialized
    See Also:
      - `setBeanFactoryPostProcessorClasses(Class[])`

  - ### prepareBeanFactory

    protected void prepareBeanFactory(org.springframework.beans.factory.config.ConfigurableListableBeanFactory parent, org.springframework.beans.factory.config.ConfigurableListableBeanFactory beanFactory)
    Extension point for special subclasses that want to do more complex things with the bean factory prior to refresh. The default implementation copies all configuration from the parent according to the `flag` set.
    Parameters:
      `parent` - the parent bean factory for the new context (will never be null)
      `beanFactory` - the new bean factory before bean definitions are loaded
    See Also:
      - `setCopyConfiguration(boolean)`
      - `DefaultListableBeanFactory.copyConfigurationFrom(ConfigurableBeanFactory)`

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`

  - ### hashCode

    public int hashCode()
    Overrides:
      `hashCode` in class `Object`

  - ### equals

    public boolean equals(Object obj)
    Overrides:
      `equals` in class `Object`