Package org.springframework.beans.factory.annotation

# 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:
  - `BeanFactoryUtils`

## Constructor Summary

Constructors
Constructor
Description
`BeanFactoryAnnotationUtils()`

## Method Summary

Modifier and Type
Method
Description
`static String`
`getQualifierValue(AnnotatedElement annotatedElement)`
Determine the `qualifier value` for the given annotated element.
`static boolean`
`isQualifierMatch(Predicate<String> qualifier, String beanName, BeanFactory beanFactory)`
Check whether the named bean declares a qualifier of the given name.
`static <T> T`
`qualifiedBeanOfType(BeanFactory beanFactory, Class<T> beanType, String qualifier)`
Obtain a bean of type `T` from the given `BeanFactory` declaring a qualifier (for example, via `<qualifier>` or `@Qualifier`) matching the given qualifier, or having a bean name matching the given qualifier.
`static <T> Map<String,T>`
`qualifiedBeansOfType(ListableBeanFactory beanFactory, Class<T> beanType, String qualifier)`
Retrieve all beans of type `T` from the given `BeanFactory` declaring a qualifier (for example, via `<qualifier>` or `@Qualifier`) matching the given qualifier, or having a bean name matching the given qualifier.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## 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 (for example, 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:
  - `BeanFactoryUtils.beansOfTypeIncludingAncestors(ListableBeanFactory, Class)`

### 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 (for example, 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:
  - `BeanFactoryUtils.beanOfTypeIncludingAncestors(ListableBeanFactory, Class)`

### getQualifierValue

@Nullable public static String getQualifierValue(AnnotatedElement annotatedElement)
Determine the `qualifier value` for the given annotated element.

Parameters:
  `annotatedElement` - the class, method or parameter to introspect
Returns:
  the associated qualifier value, or `null` if none
Since:
  6.2

### 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