public interface

SmartInstantiationAwareBeanPostProcessor

implements InstantiationAwareBeanPostProcessor
org.springframework.beans.factory.config.SmartInstantiationAwareBeanPostProcessor
Known Indirect Subclasses

Class Overview

Extension of the InstantiationAwareBeanPostProcessor interface, adding a callback for predicting the eventual type of a processed bean.

NOTE: This interface is a special purpose interface, mainly for internal use within the framework. In general, application-provided post-processors should simply implement the plain BeanPostProcessor interface or derive from the InstantiationAwareBeanPostProcessorAdapter class. New methods might be added to this interface even in point releases.

Summary

Public Methods
abstract Constructor[]<?> determineCandidateConstructors(Class<?> beanClass, String beanName)
Determine the candidate constructors to use for the given bean.
abstract Object getEarlyBeanReference(Object bean, String beanName)
Obtain a reference for early access to the specified bean, typically for the purpose of resolving a circular reference.
abstract Class<?> predictBeanType(Class<?> beanClass, String beanName)
Predict the type of the bean to be eventually returned from this processor's postProcessBeforeInstantiation(Class, String) callback.
[Expand]
Inherited Methods
From interface org.springframework.beans.factory.config.BeanPostProcessor
From interface org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessor

Public Methods

public abstract Constructor[]<?> determineCandidateConstructors (Class<?> beanClass, String beanName)

Also: SpringBeans

Determine the candidate constructors to use for the given bean.

Parameters
beanClass the raw class of the bean (never null)
beanName the name of the bean
Returns
  • the candidate constructors, or null if none specified
Throws
BeansException in case of errors

public abstract Object getEarlyBeanReference (Object bean, String beanName)

Also: SpringBeans

Obtain a reference for early access to the specified bean, typically for the purpose of resolving a circular reference.

This callback gives post-processors a chance to expose a wrapper early - that is, before the target bean instance is fully initialized. The exposed object should be equivalent to the what postProcessBeforeInitialization(Object, String) / postProcessAfterInitialization(Object, String) would expose otherwise. Note that the object returned by this method will be used as bean reference unless the post-processor returns a different wrapper from said post-process callbacks. In other words: Those post-process callbacks may either eventually expose the same reference or alternatively return the raw bean instance from those subsequent callbacks (if the wrapper for the affected bean has been built for a call to this method already, it will be exposes as final bean reference by default).

Parameters
bean the raw bean instance
beanName the name of the bean
Returns
  • the object to expose as bean reference (typically with the passed-in bean instance as default)
Throws
BeansException in case of errors

public abstract Class<?> predictBeanType (Class<?> beanClass, String beanName)

Also: SpringBeans

Predict the type of the bean to be eventually returned from this processor's postProcessBeforeInstantiation(Class, String) callback.

Parameters
beanClass the raw class of the bean
beanName the name of the bean
Returns
  • the type of the bean, or null if not predictable
Throws
BeansException in case of errors