アノテーションを使用してbean定義をすることができます。
この機能によりbean定義をプログラム内に埋め込むか、XMLファイルに記述するかをユーザの好みによって選択することができます。
beanメタデータを使用してbean定義をプログラム内に埋め込むとしても、bean定義用のクラスはビジネスロジックと別に作成することになるため、DIコンテナ上でアプリケーションを作成する利点である依存性の分離が損なわれることはありません。
例
<bean id="fooService" class="FooServiceImpl"> <constructor-arg value="100"/> </bean> |
package org.example.config; @Configuration public class AppConfig { @Bean public FooService fooService() { return new FooServiceImpl(100); } } |
<context:component-scan base-package="org.example.config"/> |