2012-01-05 8 views
4

私の目標を達成するための素早い方法が分かっているのは不思議です。 私の春のbeanのStringにidの値を注入したいと思います。xml idの値をspring beanに注入する

これは私が一言で言えば何をしたいです:

<bean id="matsientst" class="com.matt.Matt"/> 

public class Matt { 
    @Value("#id") 
    String id; 
} 

私はこれを必要とする理由は、我々は、私も必要私たちの春のXMLに設定されているオブジェクトの多くを持っているということですDBで管理する。 Spring IDは私が使用できる便利なキーです。抽象クラスを抽象クラスにエレガントに持たせることができたので、すべてのオブジェクトを注入する必要はありません。つまり、これが機能すれば。 おかげ

答えて

7

-matt ちょうどBeanNameAwareを実装し、春には、例えば、(あなたが使用する方1)idまたはname属性を供給します

public class Matt implements BeanNameAware { 
    private String id; 

    public void setName(String beanName) { 
     this.id = beanName; 
    } 
} 
+0

これでした。 Thanks – matsientst

+1

ありがとうございますが、私のコードをSpring APIに不必要な依存関係で混乱させませんか?もし、Spring ELやそれ以外のXML設定ファイルにあるオプションがあれば、私のコードは "org.springframework"で始まるものに気づかずに残るでしょう。 – ihadanny

+0

'#{#this.name} 'は私はまだそれをテストしていません。 – deamon