public interface

ConfigurableListableBeanFactory

implements ListableBeanFactory AutowireCapableBeanFactory ConfigurableBeanFactory
org.springframework.beans.factory.config.ConfigurableListableBeanFactory
Known Indirect Subclasses

Class Overview

Configuration interface to be implemented by most listable bean factories. In addition to ConfigurableBeanFactory, it provides facilities to analyze and modify bean definitions, and to pre-instantiate singletons.

This subinterface of BeanFactory is not meant to be used in normal application code: Stick to BeanFactory or ListableBeanFactory for typical use cases. This interface is just meant to allow for framework-internal plug'n'play even when needing access to bean factory configuration methods.

See Also

Summary

[Expand]
Inherited Constants
From interface org.springframework.beans.factory.BeanFactory
From interface org.springframework.beans.factory.config.AutowireCapableBeanFactory
From interface org.springframework.beans.factory.config.ConfigurableBeanFactory
Public Methods
abstract void freezeConfiguration()
Freeze all bean definitions, signalling that the registered bean definitions will not be modified or post-processed any further.
abstract BeanDefinition getBeanDefinition(String beanName)
Return the registered BeanDefinition for the specified bean, allowing access to its property values and constructor argument value (which can be modified during bean factory post-processing).
abstract void ignoreDependencyInterface(Class<?> ifc)
Ignore the given dependency interface for autowiring.
abstract void ignoreDependencyType(Class<?> type)
Ignore the given dependency type for autowiring: for example, String.
abstract boolean isAutowireCandidate(String beanName, DependencyDescriptor descriptor)
Determine whether the specified bean qualifies as an autowire candidate, to be injected into other beans which declare a dependency of matching type.
abstract boolean isConfigurationFrozen()
Return whether this factory's bean definitions are frozen, i.e.
abstract void preInstantiateSingletons()
Ensure that all non-lazy-init singletons are instantiated, also considering FactoryBeans.
abstract void registerResolvableDependency(Class<?> dependencyType, Object autowiredValue)
Register a special dependency type with corresponding autowired value.
[Expand]
Inherited Methods
From interface org.springframework.beans.factory.BeanFactory
From interface org.springframework.beans.factory.HierarchicalBeanFactory
From interface org.springframework.beans.factory.ListableBeanFactory
From interface org.springframework.beans.factory.config.AutowireCapableBeanFactory
From interface org.springframework.beans.factory.config.ConfigurableBeanFactory
From interface org.springframework.beans.factory.config.SingletonBeanRegistry

Public Methods

public abstract void freezeConfiguration ()

Also: SpringBeans

Freeze all bean definitions, signalling that the registered bean definitions will not be modified or post-processed any further.

This allows the factory to aggressively cache bean definition metadata.

public abstract BeanDefinition getBeanDefinition (String beanName)

Also: SpringBeans

Return the registered BeanDefinition for the specified bean, allowing access to its property values and constructor argument value (which can be modified during bean factory post-processing).

A returned BeanDefinition object should not be a copy but the original definition object as registered in the factory. This means that it should be castable to a more specific implementation type, if necessary.

NOTE: This method does not consider ancestor factories. It is only meant for accessing local bean definitions of this factory.

Parameters
beanName the name of the bean
Returns
  • the registered BeanDefinition
Throws
NoSuchBeanDefinitionException if there is no bean with the given name defined in this factory

public abstract void ignoreDependencyInterface (Class<?> ifc)

Also: SpringBeans

Ignore the given dependency interface for autowiring.

This will typically be used by application contexts to register dependencies that are resolved in other ways, like BeanFactory through BeanFactoryAware or ApplicationContext through ApplicationContextAware.

By default, only the BeanFactoryAware interface is ignored. For further types to ignore, invoke this method for each type.

Parameters
ifc the dependency interface to ignore

public abstract void ignoreDependencyType (Class<?> type)

Also: SpringBeans

Ignore the given dependency type for autowiring: for example, String. Default is none.

Parameters
type the dependency type to ignore

public abstract boolean isAutowireCandidate (String beanName, DependencyDescriptor descriptor)

Also: SpringBeans

Determine whether the specified bean qualifies as an autowire candidate, to be injected into other beans which declare a dependency of matching type.

This method checks ancestor factories as well.

Parameters
beanName the name of the bean to check
descriptor the descriptor of the dependency to resolve
Returns
  • whether the bean should be considered as autowire candidate
Throws
NoSuchBeanDefinitionException if there is no bean with the given name

public abstract boolean isConfigurationFrozen ()

Also: SpringBeans

Return whether this factory's bean definitions are frozen, i.e. are not supposed to be modified or post-processed any further.

Returns
  • true if the factory's configuration is considered frozen

public abstract void preInstantiateSingletons ()

Also: SpringBeans

Ensure that all non-lazy-init singletons are instantiated, also considering FactoryBeans. Typically invoked at the end of factory setup, if desired.

Throws
BeansException if one of the singleton beans could not be created. Note: This may have left the factory with some beans already initialized! Call destroySingletons() for full cleanup in this case.

public abstract void registerResolvableDependency (Class<?> dependencyType, Object autowiredValue)

Also: SpringBeans

Register a special dependency type with corresponding autowired value.

This is intended for factory/context references that are supposed to be autowirable but are not defined as beans in the factory: e.g. a dependency of type ApplicationContext resolved to the ApplicationContext instance that the bean is living in.

Note: There are no such default types registered in a plain BeanFactory, not even for the BeanFactory interface itself.

Parameters
dependencyType the dependency type to register. This will typically be a base interface such as BeanFactory, with extensions of it resolved as well if declared as an autowiring dependency (e.g. ListableBeanFactory), as long as the given value actually implements the extended interface.
autowiredValue the corresponding autowired value. This may also be an implementation of the ObjectFactory interface, which allows for lazy resolution of the actual target value.