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

下面列出了怎么用org.springframework.beans.factory.config.RuntimeBeanNameReference的API类实例代码及写法,或者点击链接到github查看源代码。

/**
 * 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;
}
 
/**
 * Return a typed String value Object for the given 'idref' element.
 */
@Nullable
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)) {
		error("'bean' 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;
}
 
/**
 * 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;
}
 
/**
 * Return a typed String value Object for the given 'idref' element.
 */
@Nullable
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)) {
		error("'bean' 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;
}
 
源代码5 项目: lams   文件: BeanDefinitionParserDelegate.java
/**
 * 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;
}
 
源代码6 项目: lams   文件: ConfigBeanDefinitionParser.java
/**
 * 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;
}
 
源代码7 项目: blog_demos   文件: BeanDefinitionParserDelegate.java
/**
 * 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;
}
 
/**
 * 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;
}
 
/**
 * 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;
}
 
@Override
public void parse(final BeanDefinition definition, final String id, final Element element, final String name,
                  final ParserContext context) {
    String beanId = element.getAttribute(name);
    if (!StringUtils.isEmpty(beanId)) {
        definition.getPropertyValues().addPropertyValue(property == null ? name : property, new RuntimeBeanNameReference(beanId));
    }
}
 
源代码11 项目: zxl   文件: MulCommonBaseServiceParser.java
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();
}
 
 类方法
 同包方法