43日目(Spring Framework1)
ここまでの学習で簡単なプログラムは組めるような知識は入ってる
ただ、そのプログラム作成を簡略化できるのがフレームワーク
フレームワークを利用すると
- 共同で開発を行う場合などのルールが明確にしやすい
- 工数削減とかのメリット
※ただし習得コストはある
利用にはライブラリを取り込む必要がある
(EcripseではMavenで管理ができる)
BeanFactory
オブジェクト生成・初期化をSpring側で担当してくれる
メリット
- クラス間の依存関係を切る
- ソフトウェアの部品化
-部品単位の開発、テスト、変更がしやすい
※前にやったFactoryパターンでは、オブジェクト生成をFactoryクラスに依頼していたが、その依頼すら不要になる
BeanFactoryを使うためにはその定義をする必要がある
①XMLを用意
-beanタグ
-@Component
-@Autowired
③アノテーションのみ
※訓練では①、②の方法で定義を行う
XMLでオブジェクト生成を定義
<beans>タグ内で長い定型文
その中で<bean>タグを用意する
<bean id="sample" class="com.example.Sample"></bean>
※クラスの指定はパッケージまで含む
生成したオブジェクトをgetBean()メソッドで利用
(ここまでは全然便利ではない。かえって手間が…(笑))
・生成・初期化を同時に行う
<bean id="sample" class="com.example.Sample">
<property name="name" value="田中太郎" />
<property name="age" value="25" />
</bean>
name="name"はsetNameに相当。ageも同様
・引数付きコンストラクタの初期化
<bean id="sample" class="com.example.Sample">
<constructor-arg value="鈴木一郎" type="String" index="0" />
<constructor-arg value="27" type="int" index="1" />
</bean>
※type,indexは省略可能(indexは0が第一引数)
↓省略版
<bean id="sample" class="com.example.Sample">
<constructor-arg value="鈴木一郎" />
<constructor-arg value="27" />
</bean>
依存性を注入
DI:Dependency Injectionともいう
-あるオブジェクトのフィールドに、適切なオブジェクトを代入すること
ここでxmlのみをつかったやり方、アノテーションと組み合わせたやり方を実行
今日はここまで。
導入ですでにけっこう難しめなので復習必須