Springの概要

概要

  • Springは、EJBを主要なフレームワークとして使用する際の不便を解消しました。
  • Rod Johnsonが2002年に出版した著書「Expert One-on-One J2EE Design and Development」で紹介したコードが、Springの基盤になりました。
  • この本を読んだ開発者たちは、コードが本の中だけに存在するのは惜しいと考え、Rod Johnsonの許可を得てフレームワークへ発展させました。
  • Spring Frameworkは2003年6月にApache 2.0 Licenseで初めて公開されました。
  • 2004年3月にバージョン1.0がリリースされ、2011年12月にはバージョン3.1が公開されました。

Springの利点

  • 生産性
  • 品質保証
  • 保守性

Springの定義

一般にはSpringと呼びますが、正確な名称はSpring Frameworkです。

  • Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。
  • Javaエンタープライズ開発を容易にする、軽量なオープンソースアプリケーションフレームワークです。
  • Java開発で依存オブジェクトを生成し、組み立てます。
  • Java SEのオブジェクト、つまりPOJOをJava EEへ依存させずに接続します。

Spring Frameworkの特徴

  • Javaオブジェクトを直接管理する軽量コンテナ
    • オブジェクトの生成や破棄などのライフサイクルを管理し、必要なオブジェクトを提供します。
  • POJO(Plain Old Java Object)方式のフレームワーク
  • IoC(Inversion of Control)をサポート
    • ユーザーではなくフレームワークが制御権を持ち、必要に応じてユーザーコードを呼び出します。
  • DI(Dependency Injection)をサポート
    • 各レイヤーやサービス間に依存関係がある場合、フレームワークが相互に接続します。
  • AOP(Aspect-Oriented Programming)をサポート
    • トランザクション、ロギング、セキュリティなど、複数のモジュールで共通して使用する機能を分離して管理できます。
  • 永続化に関連するさまざまなサービスをサポート
    • iBatisやHibernateなど、完成度の高いデータベース処理ライブラリと連携するインターフェースを提供します。
  • 高い拡張性
    • 既存ライブラリを簡単な連携レイヤーでラップするとSpringで使用できます。多くのライブラリがすでにSpringをサポートしており、Spring向けの連携部分も容易に分離できます。

Spring Frameworkの構成

Spring Frameworkの構成

  • Spring Core
    • Spring Frameworkの基盤となるIoC、つまりDI機能を提供し、BeanFactoryを通じてBeanクラスを制御します。
  • Spring Context
    • Spring Coreに追加機能を加え、より簡単な開発を支援します。JNDIやEJB向けのアダプターも含みます。
  • Spring DAO
    • JDBCベースのDAOを、少ないコードで簡単かつ一貫した方法により開発できるよう支援します。
  • Spring ORM
    • Hibernate、iBatis、JDOなどのオブジェクトリレーショナルマッピングフレームワークとの統合を支援します。
  • Spring AOP
    • AOP Allianceを基盤としたAspect-Oriented Programmingのサポートを提供します。
  • Spring Web
    • WebApplicationContextやマルチパートリクエストなど、Webアプリケーション開発に必要な機能を提供し、StrutsやWebWorkなどのフレームワークとの統合を支援します。
  • Spring Web MVC
    • Web UIレイヤー向けに独立したModel-View-Controller実装を提供します。StrutsやWebWorkが担っていた機能を置き換え、Velocity、Excel、PDFなどのUI技術を使用するAPIも提供します。

参考資料