web-dev-qa-db-ja.com

SpringでBeanの内部からBeanのIDを取得するにはどうすればよいですか?

BeanPostProcessorを使用してフィールドを設定せずに(Javaコード内))そのBean内からBean IDを取得する最も簡単な方法は何ですか?

私が考えることができる唯一の方法は、BeanPostProcessorを使用した次のようなものです。

public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
    ((MyBean)bean).setName(beanName);
    return bean;
}

追加のクラスを作成したり、問題のBeanのクラスを知ったりする必要がない、より良い方法はありますか?ドキュメントやGoogleで検索してみましたが、何を探す必要があるのか​​よくわかりません。

ありがとう!

36
user21037

org.springframework.beans.factory.BeanNameAware インターフェースを実装するだけで、自動的に取得されます。それには1つの方法があります:

void setBeanName(String name)
52