JavaマスターSpringフレームワーク → Springフレームワークとは

Springフレームワークとは

Springの簡単な説明と、他のフレームワークとの違いを説明します。

Springとは?

Java/J2EEの汎用アプリケーションフレームワークです。

フレームワークとは?

システムを構築するための、ライブラリ、設定ファイル、 ファイル・ディレクトリ構成、規約などをまとめたものです。 たとえばWebアプリケーションのフレームワークでは、 ページ制御、ページ描画、セッション(ログイン〜ログアウト)制御、 フォーム処理など、Webアプリケーション構築に必要な機能が ワンセットとなっていますので、開発者はフレームワークの仕組みに したがって、自分のアプリケーションに必要な機能を 追加していけば、Webアプリケーションが完成します。

他のフレームワークとの違いは?

Springの他にも Struts、Turbine、Tapestryなど、 数多くのアプリケーションフレームワークが 開発されています。他のフレームワークに対する Springの特徴は、たとえば以下のようなものがあります。

「依存性の注入」(DI : Dependency Injection)機能が使える

クラス(やライブラリ)の動作に必要な他のクラスを そのクラス内で生成するのではなく、Springに生成を まかせます。生成されたクラス群は、Springの 設定ファイルによって、自動的に結合されます。

このような方法を取ることにより、 クラスやライブラリの依存性が排除され、 単体テストをやりやすくしたり、 それぞれのクラスやライブラリの再利用性を高めることが できます。

Webアプリケーションだけではなく、通常の Javaアプリケーションの開発でも使えるフレームワーク

SpringはWebアプリケーション開発専用の フレームワークというわけではなく、DI機能や データベースアクセスの抽象化、AOP(Aspect Oriented Programming) といった便利なプログラミングをサポートする フレームワークであるため、コンソールアプリケーションや Swingアプリケーションといった、Webアプリケーションではない 通常のJavaアプリケーションの開発にも使うことができます。

以上に加えて、Springは、Webアプリケーション開発を支えるための しくみ(リクエストの処理、モデル・ビュー・コントローラの 処理などのライブラリ)も持っていますので、Webアプリケーション開発のための フレームワークとしても使えるようになっています。

他のオープンソースソフトウェアとの連携に優れている

Springは、Hibernate, Struts, Velocity, FreeMarkerなどの 外部のオープンソースソフトウェアとの連携に非常に優れています。 たとえば、アプリケーションの出力として、 HTML(JSP、Velocity、FreeMarker)、XML(XLST)、Excel、PDF などを使うことができます。

また、データベースのアクセスライブラリとしては、 Hibernate、JDO、Oracle TopLink、iBATIS、Apache OJB などを選択することができます。

Springをフレームワークとして採用しておけば、 将来、新しい技術やライブラリが登場しても、 アプリケーションの本体部分を変更することなく、 出力部分のライブラリだけを差し替えることにより、 簡単に対応できるということが期待できます。

[CM]Spring Frameworkをより深く理解するための書籍 オススメ度
実践Spring Framework―J2EE開発を変えるDIコンテナのすべて ★★★★★
Light Weight Java―JSF/Hibernate/SpringによるフレームワークでWebアプリケーションの開発効率向上 ☆★★★★
Java・J2EE・オープンソース Spring入門 ~より良いWebアプリケーションの設計と実装 ★★★★★
軽快なJava―Better,Faster,Lighter Java ☆☆★★★
Spring 開発者ノートシリーズ ☆★★★★