Package org.springframework.beans.factory.aot

# Interface BeanFactoryInitializationAotProcessor

Functional Interface:
  This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface BeanFactoryInitializationAotProcessor
AOT processor that makes bean factory initialization contributions by processing `ConfigurableListableBeanFactory` instances.

`BeanFactoryInitializationAotProcessor` implementations may be registered in a "META-INF/spring/aot.factories" resource or as a bean.

Using this interface on a registered bean will cause the bean and all of its dependencies to be initialized during AOT processing. We generally recommend that this interface is only used with infrastructure beans such as `BeanFactoryPostProcessor` which have limited dependencies and are already initialized early in the bean factory lifecycle. If such a bean is registered using a factory method, make sure to make it `static` so that its enclosing class does not have to be initialized.

A component that implements this interface is not contributed.

Since:
  6.0
Author:
  Phillip Webb, Stephane Nicoll
See Also:
  - `BeanFactoryInitializationAotContribution`

## Method Summary

Modifier and Type
Method
Description
`BeanFactoryInitializationAotContribution`
`processAheadOfTime(ConfigurableListableBeanFactory beanFactory)`
Process the given `ConfigurableListableBeanFactory` instance ahead-of-time and return a contribution or `null`.

## Method Details

### processAheadOfTime

@Nullable BeanFactoryInitializationAotContribution processAheadOfTime(ConfigurableListableBeanFactory beanFactory)
Process the given `ConfigurableListableBeanFactory` instance ahead-of-time and return a contribution or `null`.

Processors are free to use any techniques they like to analyze the given bean factory. Most typically use reflection to find fields or methods to use in the contribution. Contributions typically generate source code or resource files that can be used when the AOT optimized application runs.

If the given bean factory does not contain anything that is relevant to the processor, this method should return a `null` contribution.

Parameters:
  `beanFactory` - the bean factory to process
Returns:
  a `BeanFactoryInitializationAotContribution` or `null`