Package org.springframework.beans

# Interface BeanInfoFactory

All Known Implementing Classes:
  `ExtendedBeanInfoFactory`, `StandardBeanInfoFactory`

public interface BeanInfoFactory
Strategy interface for creating `BeanInfo` instances for Spring beans. Can be used to plug in custom bean property resolution strategies (for example, for other languages on the JVM) or more efficient `BeanInfo` retrieval algorithms.

BeanInfoFactories are instantiated by the `CachedIntrospectionResults`, by using the `SpringFactoriesLoader` utility class. When a `BeanInfo` is to be created, the `CachedIntrospectionResults` will iterate through the discovered factories, calling `getBeanInfo(Class)` on each one. If `null` is returned, the next factory will be queried. If none of the factories support the class, a standard `BeanInfo` will be created as a default.

Note that the `SpringFactoriesLoader` sorts the `BeanInfoFactory` instances by `@Order`, so that ones with a higher precedence come first.

Since:
  3.2
Author:
  Arjen Poutsma
See Also:
  - `CachedIntrospectionResults`
  - `SpringFactoriesLoader`

## Method Summary

Modifier and Type
Method
Description
`BeanInfo`
`getBeanInfo(Class<?> beanClass)`
Return the bean info for the given class, if supported.

## Method Details

### getBeanInfo

@Nullable BeanInfo getBeanInfo(Class<?> beanClass) throws IntrospectionException
Return the bean info for the given class, if supported.

Parameters:
  `beanClass` - the bean class
Returns:
  the BeanInfo, or `null` if the given class is not supported
Throws:
  `IntrospectionException` - in case of exceptions