1

element のパーサーを作成したいと思います。彼は次のように見えます

<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!!");
    }
}

しかし、Bean の名前 ('ref' 属性) しかわからない場合、BeanDefinition を返す方法がわかりません。

RuntimeBeanReferenceBean 名のみを使用して作成できることはわかっていますが、パーサーで返す方法はありますか?

4

1 に答える 1

1

BeanDefinition返される は、 を使用して作成できるカスタム要素によって表される Bean の定義である必要がありますorg.springframework.beans.factory.support.BeanDefinitionBuilder。ref は、その Bean のコンストラクター引数またはプロパティのいずれかである必要があります。

ref によって参照される Bean に対して何らかの処理を実行しようとしているだけの場合は、org.springframework.beans.factory.config.BeanPostProcessorこれを行うために a を使用する必要があります。

于 2013-01-25T11:07:49.147 に答える