Java (Spring Framework)
はじめに
フレームワークとは、開発に必要な基本的なコード(プログラム)の集まりです。
アプリ開発をする上でフレームワークは欠かせません。
Javaのフレームワークは、様々な種類がありますが、今回は、WEBアプリ開発で用いられるフレームワークの一つであるSpring Frameworkについてご紹介します。
Spring
Spring Frameworkは、JavaフレームワークであるSpringにおけるプロジェクトの一種です。 Springは、「Spring Framework」以外に様々なプロジェクトがあります。 様々なプロジェクトがあるので、WEBアプリ開発以外に次のような開発が可能です。
プロジェクト名 | できること |
Spring Cloud | クラウド環境におけるアプリケーションの管理 |
Spring Batch | バッチ処理を行うシステムの構築 |
Spring Security | システムのセキュリティ(認証、認可)用機能の実現 |
Spring for Android | Androidアプリの開発 |
Spring Frameworkの特徴
Javaの学習が「プログラムの作り方」であるのに対して、フレームワークの学習は「アプリの作り方」と言えます。
本格的なアプリを作る上で、フレームワークの学習は必要になってきます。
WEBアプリ作成でSpring Frameworkがよく用いられます。 その理由としてSpring Frameworkが持つ特徴があります。
《Spring Frameworkの特徴》
2.AOPに対応
3.テスト実施が容易
1.DIを重視した設計
Spring Frameworkは、DIを重視したフレームワークです。 これによって、依存性のあるプログラムを外部から取り入れることが可能になります。
例えば、2つのクラス(Aクラス、Bクラス)が依存関係にある場合、Bクラスが未完成だと動作テストができません。
しかし、Spring Frameworkを介してオブジェクトを生成することで、クラス間の依存関係が解消され動作テストができるようになります。
AクラスとBクラス依存関係あり
AクラスとBクラス依存関係解消
- プログラムの修正や変更がしやすい
- 拡張性が高い
2.AOPに対応
つまり、オブジェクトが"本来行うべき処理"と"本来行うべきでない処理(オマケの処理)"に分離することをいいます。
例えば、データベースに商品を登録する場合、オブジェクトが本来行うべき処理(データベースに商品を登録)と本来行うべきでない処理(データベースへのコネクト、トランザクション処理)に分かれます。
オマケの処理があることで、プログラム全体が見にくくなってしまいます。
加えて、他のオブジェクト(例 データベースから商品を検索)とオマケの処理が重複してしまいます。
オマケの処理を1つのクラスにまとめることができれば、コードが見やすくなるだけでなく保守性が向上するというメリットを享受できます。
AOP適用前
AOP適用後
3.テスト実施が容易
これは、単体テストではなく結合テストを実施するために利用されます。
「Spring MVC TEST」を利用することで、バグを最小限に抑えられますが、自力で行う単体テストで可能な限りバグを潰しておくとさらに良いでしょう。また、問題なく一連の処理が流れるか確認しながら開発を進めることができます。
まとめ
「Spring Framework」についてご紹介しました。
「Spring Framework」以外のフレームワークもまたの機会にご紹介していきたいです。