はじめに

2002年、Rod Johnson氏が「実践 J2EEシステム(Expert One on One J2EE Design and Development)」を著した時、Springの名前は、MVCの解説の中で「このフレームワークはサンプルではなく、公開され自由に使えます」といった主旨の文章に続いてひっそりと記される程度の露出しかなかった。

この時、今のようにSpringの名前やSpringに関連したプロダクトがここまで広がるとは誰が予想しただろうか。2010年の現在、Javaのエンタープライズ・システムにおいてSpringは外せないプロダクトとなっている。

本企画では、その巨大になったSpring関連のプロダクトを4カ月間にわたって順に紹介していく。まずは、この後に解説する様々なプロダクトの前置きとして、Springの歴史を追いながら、Springの主なプロダクトにどのようなものがあるか見てゆこう。

Spring Frameworkの時代

Springの名前を一躍有名にしたのが、2009年末にバージョン3.0を迎えた、IoCコンテナ(国内ではDIxAOPフレームワークと称されることが多い)のSpring Frameworkである。

  • 2004年3月 Spring Framework 1.0
  • 2004年9月 Spring Framework 1.1
  • 2005年5月 Spring Framework 1.2
  • 2006年10月 Spring Framework 2.0
  • 2007年11月 Spring Framework 2.5
  • 2009年12月 Spring Framework 3.0

Spring Framework(バージョン1系)が、国内のシステム開発で頻繁に利用されるようになってきたのは2006年頃からである。

当時はSpring Frameworkが提供するDIやAOPの機能を中心として、主にStrutsやHibernateと組み合わせた、いわゆるSSHと呼ばれる構成でWebアプリケーションのフレームワークとして利用されていた(図1)。少数派ではあるがなかには、Strutsの変わりにSpring MVCを、Hibernateの変わりにSpring JDBCを利用する例もあった。

図1: SSH

Spring Frameworkが普及し始めた当初は、Spring Frameworkの動作を規定する定義ファイルの肥大化と管理の困難さが問題視されることもあったが、バージョン2系のSpring Frameworkからは、定義ファイルに変わってアノテーションを利用することで、Spring Frameworkをよりシンプルに利用できるようになっている(定義ファイルの是非については今でも議論があり、大規模分散開発では定義ファイルを利用しているプロジェクトも多い)。

この頃、Springのプロダクトとして、画面遷移をフローとして管理するSpring WebFlowや、認証・認可の処理を管理するSpring Securityなどが追加され、その後も、バッチ用のSpring BatchやOSGiを意識したSpring DMなど(図2)とともに、生産性の向上などを目的としたRooやそれらを統合したEclipseベースのSTS(SpringSource Tool Suite)と云った開発環境も充実して、現在にまで至っている。

図2: Spring Frameworkと周辺プロダクト概要