java类org.springframework.beans.factory.config.RuntimeBeanNameReference的实例源码

BeanDefinitionParserDelegate.java 文件源码 项目:lams 阅读 27 收藏 0 点赞 0 评论 0
/**
 * Return a typed String value Object for the given 'idref' element.
 */
public Object parseIdRefElement(Element ele) {
    // A generic reference to any name of any bean.
    String refName = ele.getAttribute(BEAN_REF_ATTRIBUTE);
    if (!StringUtils.hasLength(refName)) {
        // A reference to the id of another bean in the same XML file.
        refName = ele.getAttribute(LOCAL_REF_ATTRIBUTE);
        if (!StringUtils.hasLength(refName)) {
            error("Either 'bean' or 'local' is required for <idref> element", ele);
            return null;
        }
    }
    if (!StringUtils.hasText(refName)) {
        error("<idref> element contains empty target attribute", ele);
        return null;
    }
    RuntimeBeanNameReference ref = new RuntimeBeanNameReference(refName);
    ref.setSource(extractSource(ele));
    return ref;
}
ConfigBeanDefinitionParser.java 文件源码 项目:lams 阅读 25 收藏 0 点赞 0 评论 0
/**
 * Create a {@link RootBeanDefinition} for the advisor described in the supplied. Does <strong>not</strong>
 * parse any associated '{@code pointcut}' or '{@code pointcut-ref}' attributes.
 */
private AbstractBeanDefinition createAdvisorBeanDefinition(Element advisorElement, ParserContext parserContext) {
    RootBeanDefinition advisorDefinition = new RootBeanDefinition(DefaultBeanFactoryPointcutAdvisor.class);
    advisorDefinition.setSource(parserContext.extractSource(advisorElement));

    String adviceRef = advisorElement.getAttribute(ADVICE_REF);
    if (!StringUtils.hasText(adviceRef)) {
        parserContext.getReaderContext().error(
                "'advice-ref' attribute contains empty value.", advisorElement, this.parseState.snapshot());
    }
    else {
        advisorDefinition.getPropertyValues().add(
                ADVICE_BEAN_NAME, new RuntimeBeanNameReference(adviceRef));
    }

    if (advisorElement.hasAttribute(ORDER_PROPERTY)) {
        advisorDefinition.getPropertyValues().add(
                ORDER_PROPERTY, advisorElement.getAttribute(ORDER_PROPERTY));
    }

    return advisorDefinition;
}
ConfigBeanDefinitionParser.java 文件源码 项目:spring4-understanding 阅读 25 收藏 0 点赞 0 评论 0
/**
 * Create a {@link RootBeanDefinition} for the advisor described in the supplied. Does <strong>not</strong>
 * parse any associated '{@code pointcut}' or '{@code pointcut-ref}' attributes.
 */
private AbstractBeanDefinition createAdvisorBeanDefinition(Element advisorElement, ParserContext parserContext) {
    RootBeanDefinition advisorDefinition = new RootBeanDefinition(DefaultBeanFactoryPointcutAdvisor.class);
    advisorDefinition.setSource(parserContext.extractSource(advisorElement));

    String adviceRef = advisorElement.getAttribute(ADVICE_REF);
    if (!StringUtils.hasText(adviceRef)) {
        parserContext.getReaderContext().error(
                "'advice-ref' attribute contains empty value.", advisorElement, this.parseState.snapshot());
    }
    else {
        advisorDefinition.getPropertyValues().add(
                ADVICE_BEAN_NAME, new RuntimeBeanNameReference(adviceRef));
    }

    if (advisorElement.hasAttribute(ORDER_PROPERTY)) {
        advisorDefinition.getPropertyValues().add(
                ORDER_PROPERTY, advisorElement.getAttribute(ORDER_PROPERTY));
    }

    return advisorDefinition;
}
BeanDefinitionParserDelegate.java 文件源码 项目:spring4-understanding 阅读 23 收藏 0 点赞 0 评论 0
/**
 * Return a typed String value Object for the given 'idref' element.
 */
public Object parseIdRefElement(Element ele) {
    // A generic reference to any name of any bean.
    String refName = ele.getAttribute(BEAN_REF_ATTRIBUTE);
    if (!StringUtils.hasLength(refName)) {
        // A reference to the id of another bean in the same XML file.
        refName = ele.getAttribute(LOCAL_REF_ATTRIBUTE);
        if (!StringUtils.hasLength(refName)) {
            error("Either 'bean' or 'local' is required for <idref> element", ele);
            return null;
        }
    }
    if (!StringUtils.hasText(refName)) {
        error("<idref> element contains empty target attribute", ele);
        return null;
    }
    RuntimeBeanNameReference ref = new RuntimeBeanNameReference(refName);
    ref.setSource(extractSource(ele));
    return ref;
}
BeanDefinitionParserDelegate.java 文件源码 项目:spring 阅读 25 收藏 0 点赞 0 评论 0
/**
 * Return a typed String value Object for the given 'idref' element.
 */
public Object parseIdRefElement(Element ele) {
    // A generic reference to any name of any bean.
    String refName = ele.getAttribute(BEAN_REF_ATTRIBUTE);
    if (!StringUtils.hasLength(refName)) {
        // A reference to the id of another bean in the same XML file.
        refName = ele.getAttribute(LOCAL_REF_ATTRIBUTE);
        if (!StringUtils.hasLength(refName)) {
            error("Either 'bean' or 'local' is required for <idref> element", ele);
            return null;
        }
    }
    if (!StringUtils.hasText(refName)) {
        error("<idref> element contains empty target attribute", ele);
        return null;
    }
    RuntimeBeanNameReference ref = new RuntimeBeanNameReference(refName);
    ref.setSource(extractSource(ele));
    return ref;
}
ConfigBeanDefinitionParser.java 文件源码 项目:spring 阅读 68 收藏 0 点赞 0 评论 0
/**
 * Create a {@link RootBeanDefinition} for the advisor described in the supplied. Does <strong>not</strong>
 * parse any associated '{@code pointcut}' or '{@code pointcut-ref}' attributes.
 */
private AbstractBeanDefinition createAdvisorBeanDefinition(Element advisorElement, ParserContext parserContext) {
    RootBeanDefinition advisorDefinition = new RootBeanDefinition(DefaultBeanFactoryPointcutAdvisor.class);
    advisorDefinition.setSource(parserContext.extractSource(advisorElement));

    String adviceRef = advisorElement.getAttribute(ADVICE_REF);
    if (!StringUtils.hasText(adviceRef)) {
        parserContext.getReaderContext().error(
                "'advice-ref' attribute contains empty value.", advisorElement, this.parseState.snapshot());
    }
    else {
        advisorDefinition.getPropertyValues().add(
                ADVICE_BEAN_NAME, new RuntimeBeanNameReference(adviceRef));
    }

    if (advisorElement.hasAttribute(ORDER_PROPERTY)) {
        advisorDefinition.getPropertyValues().add(
                ORDER_PROPERTY, advisorElement.getAttribute(ORDER_PROPERTY));
    }

    return advisorDefinition;
}
ConfigBeanDefinitionParser.java 文件源码 项目:class-guard 阅读 22 收藏 0 点赞 0 评论 0
/**
 * Create a {@link RootBeanDefinition} for the advisor described in the supplied. Does <strong>not</strong>
 * parse any associated '{@code pointcut}' or '{@code pointcut-ref}' attributes.
 */
private AbstractBeanDefinition createAdvisorBeanDefinition(Element advisorElement, ParserContext parserContext) {
    RootBeanDefinition advisorDefinition = new RootBeanDefinition(DefaultBeanFactoryPointcutAdvisor.class);
    advisorDefinition.setSource(parserContext.extractSource(advisorElement));

    String adviceRef = advisorElement.getAttribute(ADVICE_REF);
    if (!StringUtils.hasText(adviceRef)) {
        parserContext.getReaderContext().error(
                "'advice-ref' attribute contains empty value.", advisorElement, this.parseState.snapshot());
    }
    else {
        advisorDefinition.getPropertyValues().add(
                ADVICE_BEAN_NAME, new RuntimeBeanNameReference(adviceRef));
    }

    if (advisorElement.hasAttribute(ORDER_PROPERTY)) {
        advisorDefinition.getPropertyValues().add(
                ORDER_PROPERTY, advisorElement.getAttribute(ORDER_PROPERTY));
    }

    return advisorDefinition;
}
BeanDefinitionParserDelegate.java 文件源码 项目:class-guard 阅读 28 收藏 0 点赞 0 评论 0
/**
 * Return a typed String value Object for the given 'idref' element.
 */
public Object parseIdRefElement(Element ele) {
    // A generic reference to any name of any bean.
    String refName = ele.getAttribute(BEAN_REF_ATTRIBUTE);
    if (!StringUtils.hasLength(refName)) {
        // A reference to the id of another bean in the same XML file.
        refName = ele.getAttribute(LOCAL_REF_ATTRIBUTE);
        if (!StringUtils.hasLength(refName)) {
            error("Either 'bean' or 'local' is required for <idref> element", ele);
            return null;
        }
    }
    if (!StringUtils.hasText(refName)) {
        error("<idref> element contains empty target attribute", ele);
        return null;
    }
    RuntimeBeanNameReference ref = new RuntimeBeanNameReference(refName);
    ref.setSource(extractSource(ele));
    return ref;
}
BlueprintParser.java 文件源码 项目:gemini.blueprint 阅读 30 收藏 0 点赞 0 评论 0
private Object parseIdRefElement(Element ele) {
    // A generic reference to any name of any bean/component.
    String refName = ele.getAttribute(COMPONENT_ID_ATTR);
    if (!StringUtils.hasLength(refName)) {
        error("'" + COMPONENT_ID_ATTR + "' is required for <idref> element", ele);
        return null;
    }
    if (!StringUtils.hasText(refName)) {
        error("<idref> element contains empty target attribute", ele);
        return null;
    }
    RuntimeBeanNameReference ref = new RuntimeBeanNameReference(refName);
    ref.setSource(parserContext.extractSource(ele));
    return ref;
}
MulCommonBaseServiceParser.java 文件源码 项目:zxl 阅读 24 收藏 0 点赞 0 评论 0
private void buildPointcutAndAdvisorBeanDefinition(String name, List<String> expressionList, ParserContext parserContext, BeanDefinitionRegistry beanDefinitionRegistry) {
    CompositeComponentDefinition compositeComponentDefinition = new CompositeComponentDefinition("mul-transaction-expression", null);
    parserContext.pushContainingComponent(compositeComponentDefinition);

    BeanDefinition aspectJAutoProxyCreatorBeanDefinition = AopConfigUtils.registerAspectJAutoProxyCreatorIfNecessary(beanDefinitionRegistry);
    AopConfigUtils.forceAutoProxyCreatorToUseClassProxying(beanDefinitionRegistry);
    if (aspectJAutoProxyCreatorBeanDefinition != null) {
        BeanComponentDefinition componentDefinition = new BeanComponentDefinition(aspectJAutoProxyCreatorBeanDefinition, AopConfigUtils.AUTO_PROXY_CREATOR_BEAN_NAME);
        parserContext.registerComponent(componentDefinition);
    }
    for (String expression : expressionList) {
        RootBeanDefinition pointcutDefinition = new RootBeanDefinition(AspectJExpressionPointcut.class);
        pointcutDefinition.setScope(BeanDefinition.SCOPE_PROTOTYPE);
        pointcutDefinition.setSynthetic(true);
        pointcutDefinition.getPropertyValues().add("expression", expression);
        String pointcutBeanName = parserContext.getReaderContext().registerWithGeneratedName(pointcutDefinition);
        parserContext.registerComponent(new PointcutComponentDefinition(pointcutBeanName, pointcutDefinition, expression));

        RootBeanDefinition advisorDefinition = new RootBeanDefinition(DefaultBeanFactoryPointcutAdvisor.class);
        advisorDefinition.getPropertyValues().add("adviceBeanName", new RuntimeBeanNameReference(name + HIBERNATE_ADVICE_SUFFIX));
        String advisorBeanName = parserContext.getReaderContext().registerWithGeneratedName(advisorDefinition);
        advisorDefinition.getPropertyValues().add("pointcut", new RuntimeBeanReference(pointcutBeanName));
        parserContext.registerComponent(new AdvisorComponentDefinition(advisorBeanName, advisorDefinition));
    }

    parserContext.popAndRegisterContainingComponent();
}


问题


面经


文章

微信
公众号

扫码关注公众号