「Spring/di-container」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
-DI(IoC) container
--オブジェクトの生成、および依存関係をコンテナが管理する。
--コンテナによって管理されるオブジェクト=ビーン
--ビーンの生成と管理の情報はメタ設定データに書かれる
---XML
---アノテーション
---[[Javaコード>[[Java-based container configuration]]]]
--DIコンテナ⇒ &italic(){org.springframework.context.ApplicationContext}
-Java-based container configuration
--コンテナ⇒ &italic(){AnnotationConfigApplicationContext}
--CGLOBが必要:
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>2.2.2</version>
</dependency>
--関連アノテーション
---@Configuration (クラス)
---@Bean (メソッド)
---@Component
---JSR-330
--コンポーネントスキャン:AnnotationConfigApplicationContext#scan
---メタ設定クラス(@Configration付)自体もコンポーネントスキャン(@Component)対象で、refreshされると@Beanメソッドのビーンが登録される。
---web⇒&italic(){AnnotationConfigWebApplicationContext}
--programaticなコンテナ作成:AnnotationConfigApplicationContext#register
--@Configurationクラスの共有・一元化⇒@Import
--他の@Configurationクラス内の@Beanメソッドの参照
---ビーンをインジェクションする。
---@Configurationクラスをインジェクションし、Beanメソッドを明示的に
---@Configurationインターフェースをインジェクションし、Beanメソッドを明示的に
--XMLとの併用
---XMLから<bean/>で@Configrationクラスを参照する
---XMLから<context:component-scan/>で@Configrationクラスを参照する
---@Configrationクラスから@ImportResourceでXMLを参照する
--@Beanの利用
---@Configurationまたは@Componentクラスで使用可
---@Beanの構成
@Bean
public <ビーンのクラス> <ビーン名>() {...}
---@PostConstruct、@PreDestroy、Lifecycleコールバックインターフェースのサポート
---*Awareインターフェースのサポート
---コールバックインターフェースに頼らなくても、Javaコードで自由にビーンの生成ができる!
---スコープのサポート:@Scope
---scope proxyの例
@Bean
@Scope(value = "session", proxyMode = ScopedProxyMode.TARGET_CLASS)
---lookup-methodインジェクションは、Javaで書くとより自然にできる
---ビーン名、aliasは @Bean(name=...)
-DI(IoC) container
--オブジェクトの生成、および依存関係をコンテナが管理する。
--コンテナによって管理されるオブジェクト=ビーン
--ビーンの生成と管理の情報はメタ設定データに書かれる
---XML
---アノテーション
---[[Javaコード>[[Java-based container configuration]]]]
--DIコンテナ⇒ &italic(){org.springframework.context.ApplicationContext}
-Java-based container configuration
--コンテナ⇒ &italic(){AnnotationConfigApplicationContext}
--CGLIBが必要:
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>2.2.2</version>
</dependency>
--関連アノテーション
---@Configuration (クラス)
---@Bean (メソッド)
---@Component
---JSR-330
--コンポーネントスキャン:AnnotationConfigApplicationContext#scan
---メタ設定クラス(@Configration付)自体もコンポーネントスキャン(@Component)対象で、refreshされると@Beanメソッドのビーンが登録される。
---web⇒&italic(){AnnotationConfigWebApplicationContext}
--programaticなコンテナ作成:AnnotationConfigApplicationContext#register
--@Configurationクラスの共有・一元化⇒@Import
--他の@Configurationクラス内の@Beanメソッドの参照
---ビーンをインジェクションする。
---@Configurationクラスをインジェクションし、Beanメソッドを明示的に
---@Configurationインターフェースをインジェクションし、Beanメソッドを明示的に
--XMLとの併用
---XMLから<bean/>で@Configrationクラスを参照する
---XMLから<context:component-scan/>で@Configrationクラスを参照する
---@Configrationクラスから@ImportResourceでXMLを参照する
--@Beanの利用
---@Configurationまたは@Componentクラスで使用可
---@Beanの構成
@Bean
public <ビーンのクラス> <ビーン名>() {...}
---@PostConstruct、@PreDestroy、Lifecycleコールバックインターフェースのサポート
---*Awareインターフェースのサポート
---コールバックインターフェースに頼らなくても、Javaコードで自由にビーンの生成ができる!
---スコープのサポート:@Scope
---scope proxyの例
@Bean
@Scope(value = "session", proxyMode = ScopedProxyMode.TARGET_CLASS)
---lookup-methodインジェクションは、Javaで書くとより自然にできる
---ビーン名、aliasは @Bean(name=...)