Spring Framework
Spring Framework の中核は Inversion of Control コンテナであり、コールバックを使ってJavaオブジェクトのコンフィギュレーションおよび管理の一貫した手段を提供する。このコンテナは BeanFactory、ApplicationContext、Core container などとも呼ばれる。
このコンテナは多くの責務と拡張ポイントを持っており、それらが全て Inversion of Control を形成すると見ることができる(そのため、このように呼ぶ)。例えば、オブジェクト生成、オブジェクトのコンフィギュレーション、初期化メソッド呼び出し、登録されたコールバックオブジェクトにオブジェクトを渡すこと、などである。コンテナの機能の多くがオブジェクトのライフサイクル形成に関わり、それがコンテナの提供する最重要機能の1つとなっている。
このコンテナが生成するオブジェクトを Managed Objects または Beans と呼ぶ。通常、Bean definitions を含むXMLファイルをロードすることでコンテナがコンフィギュレーションを行う。これらファイルにはオブジェクト生成に必要な全ての情報がある。オブジェクトが生成され、コンフィギュレーション時にエラーが発生しなかった場合、利用可能状態になる。
Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークである。単に Spring とも呼ばれる。ロッド・ジョンソン(英語版)が自著 Expert One-on-One J2EE Design and Development(Wrox Press、2002年10月)と共にリリースしたのが最初である。.NET Framework 向けの移植版もある。2006年、Spring Framework 1.2.6 は Jolt productivity award を受賞した。
Spring Framework は特定のプログラミングモデルを強制するものではないが、Javaコミュニティでは Enterprise JavaBeans (EJB) モデルの代替・置換・追加として広く認知されつつある。設計上、このフレームワークはJava開発者の自由度を高くしているが、ドキュメントが豊富であり、よくある状況に使える使いやすいソリューションを提供する。
Spring Framework の中核機能は任意のJavaアプリケーションで使えるが、Jakarta EE(従前のJava Platform, Enterprise Edition)上に Web ベースのアプリケーションを構築するための拡張や改善が豊富に用意されている。その用途で Spring を使うことが多く、注目されている。
最初のリリースは、2003年6月で、Apache License 2.0 でライセンスされていた。1.0 がリリースされたのは2004年3月である。