@RetentionSE(valueSE=RUNTIMESE) @TargetSE(valueSE={TYPESE,METHODSE,FIELDSE}) @DocumentedSE public @interface Order
@Order
は、アノテーション付きコンポーネントのソート順を定義します。value()
はオプションであり、Ordered
インターフェースで定義されたオーダー値を表します。値が小さいほど優先順位が高くなります。デフォルト値は Ordered.LOWEST_PRECEDENCE
で、最低の優先度を示します(他の指定されたオーダー値に負けます)。
注意 : Spring 4.0 以降、ターゲットベースのコンポーネントの順序値が考慮されるコレクションインジェクション(ターゲットクラスまたは @Bean
メソッドのいずれか)でも、Spring の多くの種類のコンポーネントでアノテーションベースの順序付けがサポートされています。このような順序の値はインジェクションポイントでの優先順位に影響を与える可能性がありますが、依存関連と @DependsOn
宣言によって決定される直交関連であるシングルトンの起動順序には影響しないことに注意してください(実行時に決定される依存グラフに影響します)。
Spring 4.1 以降、標準の Priority
SE アノテーションは、オーダーシナリオでこのアノテーションのドロップイン置換として使用できます。単一の要素を選択する必要がある場合、@Priority
には追加のセマンティクスが含まれる可能性があることに注意してください(AnnotationAwareOrderComparator.getPriority(java.lang.Object)
を参照)。
または、オーダー値は Ordered
インターフェースを介してインスタンスごとに決定することもできます。これにより、特定のクラスにアタッチされたハードコードされた値の代わりに、構成によって決定されたインスタンス値が可能になります。
順序付けられていないオブジェクトのソートセマンティクスの詳細については、OrderComparator
の javadoc を参照してください。
Ordered
, AnnotationAwareOrderComparator
, OrderUtils
, Priority
SE修飾子と型 | オプションの要素と説明 |
---|---|
int | value オーダー値。 |
public abstract int value
デフォルトは Ordered.LOWEST_PRECEDENCE
です。
Ordered.getOrder()