Class FullyQualifiedAnnotationBeanNameGenerator
- All Implemented Interfaces:
BeanNameGenerator
AnnotationBeanNameGenerator
that uses the fully qualified
class name as the default bean name if an explicit bean name is not supplied via
a supported type-level annotation such as @Component
(see
AnnotationBeanNameGenerator
for details on supported annotations).
Favor this bean naming strategy over AnnotationBeanNameGenerator
if
you run into naming conflicts due to multiple autodetected components having the
same non-qualified class name (i.e., classes with identical names but residing in
different packages).
Note that an instance of this class is used by default for configuration-level
import purposes; whereas, the default for component scanning purposes is a plain
AnnotationBeanNameGenerator
.
- Since:
- 5.2.3
- Author:
- Juergen Hoeller, Sam Brannen
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final FullyQualifiedAnnotationBeanNameGenerator
A convenient constant for a defaultFullyQualifiedAnnotationBeanNameGenerator
instance, as used for configuration-level import purposes. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected String
buildDefaultBeanName
(BeanDefinition definition) Derive a default bean name from the given bean definition.Methods inherited from class org.springframework.context.annotation.AnnotationBeanNameGenerator
buildDefaultBeanName, determineBeanNameFromAnnotation, generateBeanName, isStereotypeWithNameValue
-
Field Details
-
INSTANCE
A convenient constant for a defaultFullyQualifiedAnnotationBeanNameGenerator
instance, as used for configuration-level import purposes.- Since:
- 5.2.11
-
-
Constructor Details
-
FullyQualifiedAnnotationBeanNameGenerator
public FullyQualifiedAnnotationBeanNameGenerator()
-
-
Method Details
-
buildDefaultBeanName
Description copied from class:AnnotationBeanNameGenerator
Derive a default bean name from the given bean definition.The default implementation simply builds a decapitalized version of the short class name: e.g. "mypackage.MyJdbcDao" → "myJdbcDao".
Note that inner classes will thus have names of the form "outerClassName.InnerClassName", which because of the period in the name may be an issue if you are autowiring by name.
- Overrides:
buildDefaultBeanName
in classAnnotationBeanNameGenerator
- Parameters:
definition
- the bean definition to build a bean name for- Returns:
- the default bean name (never
null
)
-