org.springframework.beans

## Interface BeanInfoFactory

- All Known Implementing Classes:
    ExtendedBeanInfoFactory

      public interface BeanInfoFactory

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

  BeanInfoFactories are 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

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

- - ### Method Detail

    - #### getBeanInfo

          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