Class BeanFactoryAnnotationUtils

java.lang.Object
org.springframework.beans.factory.annotation.BeanFactoryAnnotationUtils

public abstract class BeanFactoryAnnotationUtils extends Object
Convenience methods performing bean lookups related to Spring-specific annotations, for example Spring's @Qualifier annotation.
Since:
3.1.2
Author:
Juergen Hoeller, Chris Beams
See Also:
  • Constructor Details

    • BeanFactoryAnnotationUtils

      public BeanFactoryAnnotationUtils()
  • Method Details

    • qualifiedBeansOfType

      public static <T> Map<String,T> qualifiedBeansOfType(ListableBeanFactory beanFactory, Class<T> beanType, String qualifier) throws BeansException
      Retrieve all beans of type T from the given BeanFactory declaring a qualifier (e.g. via <qualifier> or @Qualifier) matching the given qualifier, or having a bean name matching the given qualifier.
      Parameters:
      beanFactory - the factory to get the target beans from (also searching ancestors)
      beanType - the type of beans to retrieve
      qualifier - the qualifier for selecting among all type matches
      Returns:
      the matching beans of type T
      Throws:
      BeansException - if any of the matching beans could not be created
      Since:
      5.1.1
      See Also:
    • qualifiedBeanOfType

      public static <T> T qualifiedBeanOfType(BeanFactory beanFactory, Class<T> beanType, String qualifier) throws BeansException
      Obtain a bean of type T from the given BeanFactory declaring a qualifier (e.g. via <qualifier> or @Qualifier) matching the given qualifier, or having a bean name matching the given qualifier.
      Parameters:
      beanFactory - the factory to get the target bean from (also searching ancestors)
      beanType - the type of bean to retrieve
      qualifier - the qualifier for selecting between multiple bean matches
      Returns:
      the matching bean of type T (never null)
      Throws:
      NoUniqueBeanDefinitionException - if multiple matching beans of type T found
      NoSuchBeanDefinitionException - if no matching bean of type T found
      BeansException - if the bean could not be created
      See Also:
    • isQualifierMatch

      public static boolean isQualifierMatch(Predicate<String> qualifier, String beanName, @Nullable BeanFactory beanFactory)
      Check whether the named bean declares a qualifier of the given name.
      Parameters:
      qualifier - the qualifier to match
      beanName - the name of the candidate bean
      beanFactory - the factory from which to retrieve the named bean
      Returns:
      true if either the bean definition (in the XML case) or the bean's factory method (in the @Bean case) defines a matching qualifier value (through <qualifier> or @Qualifier)
      Since:
      5.0