
Spring Frameworkのコア機能といえばなんと言っても、DI(依存性の注入)です。
Spring Frameworkには、「Spring MVC」や「Spring Batch」等、様々な種類の個別フレームワークが含まれていますが、全てこのDIベースにして構築されています。
なので、Springが出た当初からも、「Springは、DIコンテナ」と呼ばれるくらいDIは重要な概念になります。
DI(依存性の注入)とは?
昨今のプログラム開発では、複数のモジュールに分けることが当たり前になっています。
分割する処理の例
- 共通化した処理
- DBアクセスのための処理
- 外部システム、サービスに連携するための処理
そのような、分割されたモジュールを組み合わせて一つの処理にする際に威力を発揮します。
「依存性」とは?
この分けたモジュールを、設定して使うことが当たり前です。
この設定が「特定の状況下でしか使えない」というのがSpring Frameworkでは、「依存性」と呼んでいます。
そこで、設定情報等の依存性を、コードから切り離して、外部から注入するようにしようと言った考え方が「DI:依存性の注入」になります。
具体的には
Javaでは、クラスを作ったら、インスタンスを生成して、その中にフィールド情報等を設定して、プログラム内で利用しますが、そのフィールド情報を、設定値として外出しして、既に設定されたインスタンスのままプログラム内で使えるようになるというイメージです。
DIはどのように実装していくのか?
基本的には下記の二つを実装してく形になります。
- Bean
- 設定ファイル(XMLファイル)
他には、DIの実現には、「アノテーション」を使った方法もありますが、基本的には同じことです。
基本的な実装方針
Beanは、様々な値をプロパティとして持っているクラスのことですね。
通常は、処理の中で、「Beanのインスタンスを生成して、設定値を入れていくということ」をやったりしますが、それ自体が依存性のあることです。
これを、設定ファイル(XML)として用意して、自動的にBeanのインスタンスを生成します。
具体的に実装してみる。
具体的な、DIの実装方法としては、下記の記事でご紹介しています。
外部の設定ファイルから、値を注入し、ソースコードに一切触れることなく、振る舞いを返ることができることを体感できると思います。
この記事へのコメントはありません。