2013-01-25 1 views
1

요소에 대한 파서를 만들고 싶습니다. 나는 이런 식으로 뭔가 원하는 Spring 파서에서 RuntimeBeanReference를 반환 할 수 있습니까?

<custom-element ref="beanName"/> 

처럼 그는 보인다 -

public class CustomElementDefinitionParser implements BeanDefinitionParser{ 
    @Override 
    public BeanDefinition parse(Element element, ParserContext parserContext) { 
     String refName = element.getAttribute("ref"); 
     if(!refName.isEmpty()){ 
      return ?????; 
     }else 
      throw new RuntimeException("Must have 'ref' attribute!!"); 
    } 
} 

을하지만 나는 콩의 이름을 알고있는 경우에,하는 BeanDefinition을 반환하는 방법을 모른다 (이것은 '심판'속성이다) .

콩 이름만을 사용하여 RuntimeBeanReference을 만들 수 있음을 알고 있지만, 파서에서 반환하는 방법이 있습니까?

답변

1

BeanDefinitionorg.springframework.beans.factory.support.BeanDefinitionBuilder을 사용하여 생성 할 수있는 사용자 정의 요소가 나타내는 bean 정의 여야합니다. ref는 생성자의 인자 또는 bean의 속성 중 하나 여야합니다.

ref로 참조되는 bean에서 일부 처리를 수행하려는 경우 org.springframework.beans.factory.config.BeanPostProcessor을 사용해야합니다.

+0

예를 보여 줄 수 있습니까? - 제 상황에서 어떻게 사용합니까? Please –

+0

달성하려는 목표를 구체적으로 알지 못하면 예제를 제시하기가 어렵습니다. –

관련 문제