/**
* Convenient adapter for programmatic registration of bean classes.
*
* <p>This is an alternative to {@link ClassPathBeanDefinitionScanner}, applying
* the same resolution of annotations but for explicitly registered classes only.
*
* /
// 翻译一下就是:
/**
* 便捷适配器,以编程方式注册bean
* 这是ClassPathBeanDefinitionScanner的一个替换方案,应用吸纳共同的注解解决方案
* 但仅适用于显式注册的类。
*/publicclassAnnotatedBeanDefinitionReader{// 属性不做解释privatefinalBeanDefinitionRegistry registry;privateBeanNameGenerator beanNameGenerator =AnnotationBeanNameGenerator.INSTANCE;privateScopeMetadataResolver scopeMetadataResolver =newAnnotationScopeMetadataResolver();privateConditionEvaluator conditionEvaluator;// setter or getter metheods are ignored...// constructor metheods are alse ignored...// override method ... registerBean// this is very important metheod named doRegisterBean without value returedprivate<T>voiddoRegisterBean(Class<T> beanClass,@NullableString name,@NullableClass<?extendsAnnotation>[] qualifiers,@NullableSupplier<T> supplier,@NullableBeanDefinitionCustomizer[] customizers){// ... see the next section.}}