アノテーションベースのコンテナー構成

Spring は、関連するクラス、メソッド、フィールド宣言のアノテーションを使用して、コンポーネントクラス自体のメタデータを操作する、アノテーションベースの構成の包括的なサポートを提供します。サンプル: AutowiredAnnotationBeanPostProcessor で説明したように、Spring は、アノテーションと組み合わせて BeanPostProcessors を使用して、コア IOC コンテナーに特定のアノテーションを認識させます。

例: @Autowired アノテーションは、オートワイヤーのコラボレーターで説明されているものと同じ機能を提供しますが、よりきめ細かい制御とより広い適用性を備えています。さらに、Spring は、@PostConstruct や @PreDestroy などの JSR-250 アノテーションのサポートと、@Inject や @Named などの jakarta.inject パッケージに含まれる JSR-330 (Dependency Injection for Java) アノテーションのサポートを提供します。これらのアノテーションの詳細については、関連するセクションを参照してください。

アノテーションの注入は、外部プロパティの注入の前に実行されます。混合アプローチで接続された場合、外部構成 (XML 指定の Bean プロパティなど) は、プロパティのアノテーションを効果的にオーバーライドします。

技術的には、ポストプロセッサーを個別の Bean 定義として登録できますが、それらはすでに AnnotationConfigApplicationContext に暗黙的に登録されています。

XML ベースの Spring セットアップでは、アノテーションベースの構成との混合と一致を有効にするために、次の構成タグを含めることができます。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
		https://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context
		https://www.springframework.org/schema/context/spring-context.xsd">

	<context:annotation-config/>

</beans>

<context:annotation-config/> 要素は、次のポストプロセッサーを暗黙的に登録します。

<context:annotation-config/> は、定義されているのと同じアプリケーションコンテキストで Bean のアノテーションのみを検索します。つまり、<context:annotation-config/> を DispatcherServlet の WebApplicationContext に配置すると、コントローラーでは @Autowired Bean のみがチェックされ、サービスはチェックされません。詳細については、DispatcherServlet を参照してください。