{@link org.springframework.beans.factory.support.BeanNameGenerator}implementation for bean classes annotated with the {@link org.springframework.stereotype.Component @Component} annotationor with another annotation that is itself annotated with {@link org.springframework.stereotype.Component @Component} as ameta-annotation. For example, Spring's stereotype annotations (such as {@link org.springframework.stereotype.Repository @Repository}) are themselves annotated with {@link org.springframework.stereotype.Component @Component}.
Also supports Java EE 6's {@link javax.annotation.ManagedBean} andJSR-330's {@link javax.inject.Named} annotations, if available. Note thatSpring component annotations always override such standard annotations.
If the annotation's value doesn't indicate a bean name, an appropriate name will be built based on the short name of the class (with the first letter lower-cased). For example:
com.xyz.FooServiceImpl -> fooServiceImpl
@author Juergen Hoeller
@author Mark Fisher
@since 2.5
@see org.springframework.stereotype.Component#value()
@see org.springframework.stereotype.Repository#value()
@see org.springframework.stereotype.Service#value()
@see org.springframework.stereotype.Controller#value()
@see javax.inject.Named#value()