2009-07-29 15 views
32

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

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

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

に、Beanのクラスを余分なクラスを書くか、知っている私を必要としない良い方法はあります質問?私はドキュメントとGoogleで検索してみましたが、探したいものが本当にわからないのです。

ありがとうございます!

答えて

46

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

void setBeanName(String name) 
+0

ありがとう!まさに私が探していたもの。 – Dan

+3

Springは、インターフェースとパブリックセッターを必要とせずにBeanのフィールドに直接注入される名前を得ることができる注釈をSpringが提供していないことは残念です。うーん。 – skaffman

+0

@skaffman - あなたはいつもあなたのSpringの知識を忘れています。私はあなたの答えを探します。 – duffymo

関連する問題