アノテーションによるDIの実装 (5/5)
作成:2015-07-11 08:56
更新:2015-07-11 08:56
更新:2015-07-11 08:56
■コンポーネントを利用する
では、コンポーネントを実際に利用しましょう。App.javaを開き、下のソースコードのように書き換えてください。そして実行してみましょう。
「*print by BeanHolder*」という表示の下に、SampleBeanの出力がされます。BeanHolderが取得され、その中でSampleBeanを使って処理を実行しているのがよくわかりますね。
ここでは、AnnotationConfigApplicationContextインスタンスを作成した後、getBeanで「BeanHolder.class」を引数に指定してBeanHolderインスタンスを取得しています。BeanHolderは、Bean設定クラス(SampleBeanConfig)には記述されていません。が、ちゃんとgetBeanで取り出せるのです。
これは、Bean設定ファイルの@ComponentScanにより、@Componentを指定されたクラスが検索され、そのインスタンスがApplicationContextに登録されているからです。またその内部では、@Autowiredにより、SampleBeanが自動的にフィールドに設定されていたので、その値がshowMessageで出力されていた、というわけです。
このように、アノテーションを使うと、必要なBeanやコンポーネント類がすべて自動的に用意され使えるようになります。Spring FrameworkのBean利用の基本的な仕組みが、これでだいぶわかってきたのではないでしょうか。
DIによるBeanの利用は、Spring Frameworkの中核をなす技術です。Spring Frameworkにはさまざまなライブラリが用意されていますが、それらはすべて、このBean技術を使って必要な機能をBean化し、利用しています。Bean利用がわからないと、Spring Frameworkの基本的な使い方が理解できないのです。これらは「Spring Frameworkの基本中の基本」として、しっかり理解しておきましょう。
「*print by BeanHolder*」という表示の下に、SampleBeanの出力がされます。BeanHolderが取得され、その中でSampleBeanを使って処理を実行しているのがよくわかりますね。
ここでは、AnnotationConfigApplicationContextインスタンスを作成した後、getBeanで「BeanHolder.class」を引数に指定してBeanHolderインスタンスを取得しています。BeanHolderは、Bean設定クラス(SampleBeanConfig)には記述されていません。が、ちゃんとgetBeanで取り出せるのです。
これは、Bean設定ファイルの@ComponentScanにより、@Componentを指定されたクラスが検索され、そのインスタンスがApplicationContextに登録されているからです。またその内部では、@Autowiredにより、SampleBeanが自動的にフィールドに設定されていたので、その値がshowMessageで出力されていた、というわけです。
このように、アノテーションを使うと、必要なBeanやコンポーネント類がすべて自動的に用意され使えるようになります。Spring FrameworkのBean利用の基本的な仕組みが、これでだいぶわかってきたのではないでしょうか。
DIによるBeanの利用は、Spring Frameworkの中核をなす技術です。Spring Frameworkにはさまざまなライブラリが用意されていますが、それらはすべて、このBean技術を使って必要な機能をBean化し、利用しています。Bean利用がわからないと、Spring Frameworkの基本的な使い方が理解できないのです。これらは「Spring Frameworkの基本中の基本」として、しっかり理解しておきましょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
package com.tuyano.libro; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class App { public static void main(String[] args) { ApplicationContext app = new AnnotationConfigApplicationContext(SampleBeanConfig.class); BeanHolder holder = app.getBean(BeanHolder.class); holder.showMessage(); } }
※関連コンテンツ
「初心者のためのSpring Framework入門」に戻る