支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡


はじめに

フレームワークとは、開発に必要な基本的なコード(プログラム)の集まりです。
アプリ開発をする上でフレームワークは欠かせません。 Javaのフレームワークは、様々な種類がありますが、今回は、WEBアプリ開発で用いられるフレームワークの一つであるSpring Frameworkについてご紹介します。


Spring

Spring Frameworkは、JavaフレームワークであるSpringにおけるプロジェクトの一種です。 Springは、「Spring Framework」以外に様々なプロジェクトがあります。 様々なプロジェクトがあるので、WEBアプリ開発以外に次のような開発が可能です。

【Springプロジェクト一覧(抜粋)】
プロジェクト名 できること
Spring Cloud クラウド環境におけるアプリケーションの管理
Spring Batch バッチ処理を行うシステムの構築
Spring Security システムのセキュリティ(認証、認可)用機能の実現
Spring for Android Androidアプリの開発

Spring Frameworkの特徴

Javaの学習が「プログラムの作り方」であるのに対して、フレームワークの学習は「アプリの作り方」と言えます。
本格的なアプリを作る上で、フレームワークの学習は必要になってきます。

WEBアプリ作成でSpring Frameworkがよく用いられます。 その理由としてSpring Frameworkが持つ特徴があります。

《Spring Frameworkの特徴》

1.DIを重視した設計
2.AOPに対応
3.テスト実施が容易


1.DIを重視した設計
DI(Dependency Injection)は、「依存性の注入」と呼ばれる仕組みです。
Spring Frameworkは、DIを重視したフレームワークです。 これによって、依存性のあるプログラムを外部から取り入れることが可能になります。

例えば、2つのクラス(Aクラス、Bクラス)が依存関係にある場合、Bクラスが未完成だと動作テストができません。
しかし、Spring Frameworkを介してオブジェクトを生成することで、クラス間の依存関係が解消され動作テストができるようになります。

AクラスとBクラス依存関係あり

AクラスとBクラス依存関係解消

また、上記の例以外に、プログラム間の依存性低下によるメリットは次のようなものがあります。
  • プログラムの修正や変更がしやすい
  • 拡張性が高い

2.AOPに対応
AOP(Aspect Oriented Programming)は、「アスペクト指向」と呼ばれるオブジェクト指向で対応しにくい機能に柔軟性を持たせるためのプログラミング指向です。
つまり、オブジェクトが"本来行うべき処理""本来行うべきでない処理(オマケの処理)"分離することをいいます。

例えば、データベースに商品を登録する場合、オブジェクトが本来行うべき処理(データベースに商品を登録)と本来行うべきでない処理(データベースへのコネクト、トランザクション処理)に分かれます。
オマケの処理があることで、プログラム全体が見にくくなってしまいます。
加えて、他のオブジェクト(例 データベースから商品を検索)とオマケの処理が重複してしまいます。

オマケの処理を1つのクラスにまとめることができれば、コードが見やすくなるだけでなく保守性が向上するというメリットを享受できます。

AOP適用前

AOP適用後


3.テスト実施が容易
Spring Frameworkには、「Spring MVC TEST」というテスト専用プログラムが用意されています。
これは、単体テストではなく結合テストを実施するために利用されます。
「Spring MVC TEST」を利用することで、バグを最小限に抑えられますが、自力で行う単体テストで可能な限りバグを潰しておくとさらに良いでしょう。また、問題なく一連の処理が流れるか確認しながら開発を進めることができます。



まとめ

Spring Framework」についてご紹介しました。
「Spring Framework」以外のフレームワークもまたの機会にご紹介していきたいです。