Spring Frameworkの歴史
バージョン | リリース日 | 説明 |
---|---|---|
1.0 | 2004年 | |
1.2 | 2005年 | AOP、XMLベースのBean定義、フレームワークモジュールの疎結合、トランザクション管理、データアクセス等の基本機能 |
2.0 | 2006年 | 「Spring Security」、「Spring Web Flow」等のWebアプリに必要なプロジェクトが立ち上がった。 |
2.5 | 2007年 | 「アノテーションベースのDI」、「MVC」、「Spring Integration」、「Spring Batch」等のプロジェクトが立ち上がった。 |
3.0 | 2009年 | JPA2.0、Bean Validation、JavaEE6のサポート、 |
4.0 | 2013年 | Java SE8、JavaEE7の対応、WebSocket、Webメッセージングのサポート等の対応している。 |
- | 2014年 | Spring Boot、Spring IO Platformプロジェクトが始まった。 |
Spring Frameworkの代表的なプロジェクト
Spring Frameworkには数多くのプロジェクトがあります。代表的なプロジェクトをご紹介します。
Spring Framework
「フレームワーク全体の名前」でもあり中核機能であることも示します。DI自体はこのコア機能があれば実装することが可能です。
Spring MVC
Springで、Webアプリケーションを開発するためのフレームワークであり、アーキテクチャパターンとしてMVCを用いています。
Spring MVCの特徴等の詳細については、下記の記事で解説しています。
Spring AOP
アスペクト指向プログラミングのためのフレームワークです。
AOP(アスペクト指向プログラミング)
下記のような処理は、本質的な処理ではないのに、ビジネスロジックの中に入ってきてしまったりします。
- セキュリティ
- ログ出力処理
- トランザクション
- モニタリング
- キャッシュ処理
- 例外ハンドリング
ただ、こうした共通的な処理は、後で修正したいといったことが発生したら、後で全てのコードで同じように直さなければなりません。
例えば、
デバッグする時に、ソースのいたるところに、「System.out.println」を埋め込む方がいますが、後でそれを手作業で全て取り除かなければなりません。すごく面倒ですよね。
AOPの指向の本質としては、そうした機能の本質的でない処理を、アプリケーションのコードから分離することです。
DIとの違いは?
DIが、「設定値の注入」とすれば、AOPは、「処理の注入」といえるでしょう。
AOPは、あらかじめ外部に用意しておいた共通的な処理を挿入したり、取り除いたりを簡単に実現できます。
AOPの実装方法は?
下記のクラスをそれぞれ用意する必要があります。
- AOPで、処理を追加する対象となるクラス
- AOPで、処理を追加するクラス
- AOPの設定ファイル(設定用のクラスにすることも可能です。)
具体的な実装は下記の記事でご紹介しています。
設定ファイルでの実装
設定クラスでの実装
AspectJを使う。
AOPを実現するために、Javaでは「AspectJ」というライブラリが広く使われています。Spring Frameworkでも、「AspectJ」を利用してAOPを実現する機能も実装されています。
メリット
「AspectJ」を使うと、普通にAOPを実装するよりも簡単に記述することができます。是非導入しましょう。
具体的な実装方法については、下記の記事で詳しく解説しています。
Spring Security
「認証」と「認可」等のセキュリティ要件を容易に実現するためのフレームワークです。非常に多くの認証方式に対応しています。
ユーザー認証、ページごとのアクセス権設定等ができます。
Spring Web Flow
Webアプリの画面遷移を管理するフレームワークです。Spring MVCとは別フレームワークになり、画面の流れからアプリを構築できます。
Spring Data
RDBMS、NoSQL、Key-Valueストア等、数多くのデータストアへのデータアクセスを用意にするためのフレームワークです。
Spring Dataについては、下記の記事で解説しています。
Spring Batch
バッチアプリ向けの軽量フレームワークです。
Spring Tool Suite(STS)
Springアプリを開発するために用意されたEclipseベースの統合開発環境です。Git、Maven、AspectJ等の開発に必要なソフトウェアが最初から含まれています。
STSの導入方法については下記の記事で解説しています。
【Spring Framework】Springによる開発を始めよう(STSのインストール~「Hello World」まで)
Spring IO Platform
Springで使う各種ライブラリ、サードパーティライブラリ等のバージョンを決定し、依存関係を解決するためのプロジェクトです。
Spring Boot
最小限の設定で、Springアプリを簡単に開発するためのフレームワークです。
Springは、長い歴史があるということもあり、Javaの初心者には敷居が高いですが、簡単に設定可能なので世界中で大人気のフレームワークになっています。
この記事へのコメントはありません。