1、给Bean指定名称的几种途径
@Component,@ManagedBean,@Name
protected boolean isStereotypeWithNameValue(String annotationType,
Set<String> metaAnnotationTypes, @Nullable Map<String, Object> attributes) {
//COMPONENT_ANNOTATION_CLASSNAME是org.springframework.stereotype.Component
boolean isStereotype = annotationType.equals(COMPONENT_ANNOTATION_CLASSNAME)
||metaAnnotationTypes.contains(COMPONENT_ANNOTATION_CLASSNAME)
||annotationType.equals("javax.annotation.ManagedBean")
||annotationType.equals("javax.inject.Named");
return (isStereotype && attributes != null && attributes.containsKey("value"));
}