}
@Override
protected final AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
BeanDefinitionBuilder proxyBuilder = BeanDefinitionBuilder.genericBeanDefinition(ProxyFactoryBean.class);
AbstractBeanDefinitionParser realParser = getRealObjectParser();
// ȡ����ʵ��bean��ע�⣬����������containingBean=proxyBean�����bean���ᱻע�ᵽregistry
ParserContext realBeanParserContext = new ParserContext(parserContext.getReaderContext(),
parserContext.getDelegate(), proxyBuilder.getRawBeanDefinition());
AbstractBeanDefinition realBd = (AbstractBeanDefinition) realParser.parse(element, realBeanParserContext);
// ���scope������singleton��prototype��������proxy��ֱ�ӷ�����ʵ��bean������proxy bean
String scope = trimToNull(getScope(element, realBd));
if (scope == null || scope.equalsIgnoreCase(SCOPE_SINGLETON) || scope.equalsIgnoreCase(SCOPE_PROTOTYPE)) {