@Service @Order(1)
public class FooService implements IService {..}
@Service @Order(2)
public class BarService implements IService {..}
が、それは次のリスト内の順序は常に{FooService, BarService}
になることが保証されている豆の定義された順序と同じです(同じ質問がXML設定になります)、順序がリストに
@Service @Order(1)
public class FooService implements IService {..}
@Service @Order(2)
public class BarService implements IService {..}
が、それは次のリスト内の順序は常に{FooService, BarService}
になることが保証されている豆の定義された順序と同じです(同じ質問がXML設定になります)、順序がリストに
@Order
は一般的な目的の注釈ではありません。 javadocから:
注:アノテーションベースの並べ替えは、特定の種類のコンポーネントのみでサポートされています。アノテーションに基づくAspectJの側面一方、Springコンテナ戦略は、通常、各インスタンスの構成可能な順序付けを可能にするために、オーダーされたインタフェースに基づいています。
もbeans
とcontext
モジュールのソースでorg.springframework.core.annotation.Order
とAnnotationAwareOrderComparator
のない出現箇所がありません。
予想通り、これは動作させるための簡単な方法は次のとおりです。
@PostConstruct
public void init() {
Collections.sort(services, AnnotationAwareOrderComparator.INSTANCE);
}
春4のリリース以来、@Order
の使用は、私はちょうど春を介してこれをトレースしてみました@Component
含むように拡張されましたソースコードですが、そこではかなり怖いです。私はそれを十分に追うことができません。私は答えが "はい"だと思う。 – skaffman
@skaffmanそれは最も論理的な行為であり、その点については春の通常の「政策」が与えられているので、私はまた「はい」と疑います。しかし、私は証拠を見つけることを試みるでしょう:) – Bozho
@skaffman - 私たちの期待は間違っているようです)(axtavtの答えとコメントを参照してください) – Bozho