2016-04-11 9 views
1

私は最近、Springフレームワークの使用を開始しました。私は@Resource対XMLファイルのプロパティ引数(伝統的な方法)をいつ使用するのか混乱しています。新しい注釈を設計するために考慮された特別な実際の使用ケースは何ですか? Spring Annotationsに完全に移行するようアドバイスしますか?@ResourceとxmlのProperty引数の比較

+0

@ryekayoありがとうございました。私は自分の質問を更新しました。 – Ashley

答えて

0

@AutowiredはSpring固有で、@ResourceはJSRですが、現在のSpringは両方をサポートしています。 Springフレームワークもなくても動作するので、JSRを使用します。他に何かを使用することにした場合は変更が少なくなります)。 注釈とXMLについては、この質問を参照してください。Spring annotation-based DI vs xml configuration?

使用状況によって異なります。私にとっては、注釈はJavaコード内のすべてを直接保つことができるので簡単です。それで単なる自己文書化です。しかし、XMLを使用したい場合があります(例えば、コード自体を変更せずにXMLの場所を簡単に切り替えることができます)

+0

私によれば、後で変更したいかもしれない設定は、プレースホルダーかプロパティの引数にすることができます。残りのすべての変数に@Resourceで注釈を付ける必要があります。 – Ashley

1

@Resource@Autowiredの違いはすでによく説明されていますあなたは私のblogからも見つけることができます。

基本的には、注入前にBeanを検索する方法が異なります。
@Autowiredは、既定で名前で型によってアセンブルされますが、@Resourceでは既定で名前でアセンブルされます。彼らはまた、別の瓶に属しています。


Property argument in xml fileに関しては、それはあなたが豆のフィールドの値を指定する方法です。作成した後

Person samplePerson = new Person(); 
samplePerson.setAge(23); 
samplePerson.setName("Rugal"); 

:同じように、このオブジェクト内のフィールドのどの値春を伝えることであるあなたがxmlに何をする必要があるか、あなたはPersonクラスのオブジェクトであるSamplePersonという名前のBeanを作成したいと言いますこのようなBeanでは、Springコンテキストは、このオブジェクトを後で使用できるようにコンテナ内に配置します。今、あなたは、あなたがこのpersonオブジェクトがあなたのXML定義に対応するその属性を持つことになります気づくでしょう

@Autowired 
private Person samplePerson; 

を使用して必要な場所にこのsamplePerson Beanを注入する@Autowiredまたは@Resourceを使用することができます。


しかし、誰かが、それは十分に動的でない主張するかもしれないが、実際には、私はむしろJavaのスタイルですべての設定を行うになり、XMLの下のコードに面倒です。
はい、XML設定からJava設定にすべてを切り替えることができます。私のサンプルはgithubから得ることができます。
あなたがSpringを初めてお使いの場合は、archetypeを使用することをおすすめします。完全に統合されたコードベースが得られます。