2009-05-05 5 views
10

Springには、設定が必要なBeanのメンバ変数をマークするための@Requiredアノテーションがあります。Springの@Requiredアノテーションの推奨使用方法

これを使用するベストプラクティスはありますか?

たとえば、これらの値をコンストラクタに設定し、これらのパラメータを明示的に必要とする方がよい場合があります(特に、Spring以外で使用する場合)。

ありがとうございます!

答えて

8

直接@Required注釈を参照していないが、Martin Fowler氏はthis advice ...

を提供して彼は、「はあなたに明確な声明を与えるとして、コンストラクタではなく、セッター内のオブジェクト値を設定することを好みます明白な場所に有効なオブジェクトを作成することが何を意味するのか "また、は、単にセッター"を提供しないことによって不変のフィールドを隠すことができます。

+3

さらに、コンストラクタで変数を設定/インスタンス化すると、finalとして宣言することができます。最終変数は、明示的な使用目的(提案したとおり)を提供するとともに、不変性を達成するためのステップです(オブジェクトがスレッドセーフである必要がある場合には価値があります)。 – CaptainHastings

関連する問題