SpringはJavaに活用されるオープンソースWebアプリケーションフレームワークです。Javaフレームワークの中でも対応範囲が広く万能型であることで人気を集めております。またSpringがStrutsに次ぐ長い歴史を持ち、世界中のシステム開発に利用されております。
この記事ではSpringを理解するために初心者でも分かる歴史、特徴、基礎知識などを簡単に解説していきます。
SpringとはJavaに活用されるロッド・ジョンソン(Rod Johnson)氏によって開発されたオープンソースアプリケーションフレームワークです。Javaにおけるフレームワークの中でも長い歴史を持ち、世界中のシステム開発に利用されております。Springの特徴は様々なプロジェクトと呼ばれるライブラリの集合体で形成されており、開発者が用途に合わせて必要なライブラリを活用するという特徴があります。そのため非常に柔軟性が高いフレームワークとして親しまれております。主なSpringの種類としてSpringBoot、SpringDate、SpringSecurityなどが挙げられます。
JavaとはOracle社が開発・提供するオブジェクト指向のプログラミング言語です。1995年にサン・マイクロシステムズ(後にOracle社が買収)のジェームス・ゴブリン氏によって開発されリリースとなりました。プログラミング言語の発展に大きな影響をもたらしたC言語を元に開発されたことでも有名です。当時、最も人気を集めていたC言語はオブジェクト指向ではありませんでした。Javaの登場によってオブジェクト指向が主流の時代が訪れたと言われております。
Javaのキャッチコピーは「Write once, run anywhere」で直訳すると「一度書けば、どこでも実行できる」という意味があります。このことからも分かるようにJavaの特徴は『オブジェクト指向の先駆者』で『どこでも動く』ということらが挙げられます。世界中で最もポピュラーで多くのWebアプリケーションで採用されていることで知られております。
『Javaにおけるシステム開発を簡単に行えるように用意された枠組みのこと』
JavaフレームワークとはJavaにおけるシステム開発のプログラミングを効率的に実施するために汎用的な機能群をまとめ、システムの骨組みとなるテンプレートまで用意してくれる枠組みのことです。フレームワークを活用することでプログラミングにおける記述コードを最小限に抑えることが出来ます。Javaフレームワークの代表的な種類としてStruts、Spring、JSFなどが挙げられます。
Javaフレームワーク人気どころ7選ついて解説された記事はこちら>>
Springの読み方は『スプリング』です。正式名称は「Spring Framework」ですが、一般的にはSpringと略した名で浸透しております。名前の由来は調査したところ出てきませんでしたが「Spring」の開発会社であるSpringSource社はSpringリリース時は『INTERFACE21』という社名だったようです。
SpringはSpringSource社(当時:INTERFACE21)によって開発、管理されているJava向けオープンソースWebアプリケーションフレームワークです。ロッドジョンソン(Rod Johnson)氏が中心となり開発が行われ2003年6月に初版がリリースされました。2002年にロッドジョンソン氏が著した「実践 J2EEシステム(Expert One on One J2EE Design and Development)」にはSpringに纏わる文章は少し触れていた程度で当時ここまで広がるとは予測されていなかったといわれております。
誕生以来度重なるのバージョンアップを繰り返し日本国内において利用され始めたのが2006年10月にリリースされた『Spring Framework2.0』以降で、2009年にリリースされた『Spring Framework3.0』を迎えた際に広く浸透していったといわれております。2013年には『Spring Framework4.0』がリリースされ以降「Spring Boot」「Spring IO Platform」などのプロジェクトが始まりさらに注目を集めるようになります。簡単に以下の年表にまとめておりますのでご覧ください。
年代 | 内容 |
2003年6月 | Spring Framework 初版リリース |
2004年3月 | Spring Framework1.0 |
2006年10月 | Spring Framework2.0 |
2007年11月 | Spring Framework2.5 |
2009年12月 | Spring Framework3.0 |
2013年12月 | Spring Framework4.0 |
2014年 | 「Spring Boot」「Spring IO Platform」などのプロジェクト始動 |
2017年9月 | Spring Framework5.0 |
Springの特徴を見ていきましょう。
Springは拡張性が高いという特徴があります。設定も簡単でフレームワークの単純性と処理能力もとても強く、XML拡張機能「POJO(Plain Old Java Objects)」管理機能で強力な業務サポートを行います。
Springは優秀なテストプログラム機能を利用することができるという特徴があります。開発作業では品質の高いシステムを作成するためにテストを実施する必要があります。Springでは単体のシステムを結合する際にバグが検出できるように専用にプログラムを用意しております。これによりバグの発生を最小限に抑え、テスト工程の効率をあげることができます。
Springは依存性(Dependency Injection)の注入機能があるという特徴があります。クラス(やライブラリ)の動作に必要な他のクラスを都度そのクラス内で生成するのではなく、Springに自動生成を実施させることができます。生成されたクラス群は、Springの設定ファイルによって、自動的に結合されます。
Springは他のソフトウェアとの連携が優秀という特徴が挙げられます。数多くのデータベースのアクセスライブラリの選択が可能だったり、アプリケーションの出力先が豊富だったりと様々なソフトウェアとの連携に優れております。
Springは再利用性が高いという特徴があります。AOP(アスペクト指向プログラミング)という仕組みによって共通のプログラムがまとまられやすい環境になっております。そのためプログラムの再利用が容易であるとともにプログラムの記述や修正する量を効率的に削減することができます。
Spring以外のJavaによるシステム開発に用いられる代表的なフレームワークを紹介させていただきます。
StrutsとはJavaに活用されるクレイグ・マクラナハン (Craig McClanahan)氏によって開発されたオープンソースアプリケーションフレームワークです。Javaにおけるフレームワークの中で最も知名度が高いのではないでしょうか。StrutsはMVCと呼ばれるソフトウェア設計モデルが採用されております。その特徴は画面とデータベースの開発を分離し、モジュール単位での開発を実現させたことにあります。主なStritsの種類(バージョン)としてStruts、Struts2が挙げられます。
Play FrameworkとはJavaとScaraの2つのプログラミング言語でZenexity社のプログラマーギヨーム・ボルト(Guillaume Bort)氏によって開発されたオープンソースのWEBアプリケーションフレームワークです。Play FrameworkはRuby on Railsからの影響を強く受けたフレームワークとして有名です。その特徴として軽量で動きが速いという点が挙げられることから度々Webサービスの開発などにおいて好まれて利用されております。
Play Frameworkの公式サイトはこちら>>
Play Frameworkの歴史や特徴、基礎知識について解説された記事はこちら>>
JSF(Java Server Faces)とは、Javaに活用されるOracle社によって開発されたWebアプリケーションフレームワークです。Strutsと同様にMVCと呼ばれるソフトウェア設計モデルが採用されております。その特徴はWebアプリケーションのユーザインターフェースの作成のために活用され、コンポーネントベースで開発するものとなっております。JSFの仕様はJavaEEJava EE(Java Platform, Enterprise Edition)の一部として取り込まれています。
Springを理解するために初心者でも分かる歴史、特徴、基礎知識などを簡単に解説させていただきました。Springを一言で表すと『Javaに対応範囲の広い万能型のフレームワーク』です。「拡張性が高い」「テストプログラムが優秀」「依存性(Dependency Injection)の注入機能」などの特徴が挙げられます。Springについてこの記事に書かれている最低限の内容は理解をしておくようにしましょう。