アノテーションが付けられていないクラスでも@Component
、アノテーションで宣言されているときに Spring コンテキストに登録されることに気付きました@Import
。
@Configuration
@Import({MyBean.class})
class MyConfig {
@Bean
Object object(MyBean myBean) { // this works
return new Object();
}
}
class MyBean {} // no annotation here
@Import
この動作は、ドキュメントからはあまり明確ではありません。
これは欲しいですか?それはどこかに文書化されていますか?@component
非クラスとクラスのインポートに違いはあります@Component
か?
ドキュメントには次のように記載されています。
@Configuration クラス、ImportSelector および ImportBeanDefinitionRegistrar 実装、および通常のコンポーネント クラスをインポートできます。
「通常のコンポーネント クラス」とは何ですか? 任意のクラスまたは@Component
?で注釈が付けられたクラス