Springのドキュメントでは、@ Componentアノテーションを次のように定義しています。「アノテーション付きクラスが「コンポーネント」であることを示します。このようなクラスは、アノテーションベースの構成とクラスパススキャンを使用する場合の自動検出の候補と見なされます。」
これは簡潔ですが、多くは語っていません。@Componentは、クラスのライフサイクル(作成/破棄)がSpringによって管理されることを示すために使用されることを理解しています。私が持っている質問:どこかで自動配線されるクラスでのみ使用する必要がありますか(1)、自動配線属性を持つクラスでも使用する必要がありますか(2)?
(1)
@Component
class B {
}
class A {
// @Autowired
B b;
}
(2)
@Component
class B {
}
@Component
class A {
// @Autowired
B b;
}