После прохождения Исходный код Spring 3.0.5, когда вы делаете
ApplicationContext.getApplicationContext().getBean(abcclassName.class)
на абстрактном классе, и если абстрактный класс не настроен как @component, то AbstractBeanFactory вызывает метод isTypematch для получения Корректной сущности.
В основном он принимает все бобы (которые когда-либо инициировались в контексте) и повторяется один за другим, и проверяет, что компонент для фабрики запрошен или компонент может быть назначен для запрошенного.
Если только один бит разрешен с использованием этого типа, тогда он возвращает этот bean-компонент
, если он обнаружил несколько боб и затем возвратил ошибку.
return !BeanFactoryUtils.isFactoryDereference(name) &&
typeToMatch.isAssignableFrom(beanInstance.getClass());
typeToMatch.isAssignableFrom(beanInstance.getClass());
использование вызова собственного метода в классе Object public native boolean isAssignableFrom(Class<?> cls);
проверить