StrutsはJavaに活用されるオープンソースWebアプリケーションフレームワークです。Javaフレームワークの中でも長い歴史を持ち、デフォルトスタンダードと呼ばれるほどまでに浸透した実績を持つ非常に知名度の高いフレームワークです。この記事ではStrutsを理解するために初心者でも分かる歴史、特徴、基礎知識などを簡単に解説していきます。
StrutsとはJavaに活用されるクレイグ・マクラナハン (Craig McClanahan)氏によって開発されたオープンソースWebアプリケーションフレームワークです。Javaにおけるフレームワークの中で最も知名度が高いのではないでしょうか。StrutsはMVCと呼ばれるソフトウェア設計モデルが採用されております。その特徴は画面とデータベースの開発を分離し、モジュール単位での開発を実現させたことにあります。主なStritsの種類(バージョン)としてStruts、Struts2が挙げられます。
JavaとはOracle社が開発・提供するオブジェクト指向のプログラミング言語です。1995年にサン・マイクロシステムズ(後にOracle社が買収)のジェームス・ゴブリン氏によって開発されリリースとなりました。プログラミング言語の発展に大きな影響をもたらしたC言語を元に開発されたことでも有名です。当時、最も人気を集めていたC言語はオブジェクト指向ではありませんでした。Javaの登場によってオブジェクト指向が主流の時代が訪れたと言われております。
Javaのキャッチコピーは「Write once, run anywhere」で直訳すると「一度書けば、どこでも実行できる」という意味があります。このことからも分かるようにJavaの特徴は『オブジェクト指向の先駆者』で『どこでも動く』ということらが挙げられます。世界中で最もポピュラーで多くのWebアプリケーションで採用されていることで知られております。
『Javaにおけるシステム開発を簡単に行えるように用意された枠組みのこと』
JavaフレームワークとはJavaにおけるシステム開発のプログラミングを効率的に実施するために汎用的な機能群をまとめ、システムの骨組みとなるテンプレートまで用意してくれる枠組みのことです。フレームワークを活用することでプログラミングにおける記述コードを最小限に抑えることが出来ます。Javaフレームワークの代表的な種類としてStruts、Spring、JSFなどが挙げられます。
Javaフレームワーク人気どころ7選ついて解説された記事はこちら>>
Strutsの読み方は『ストラッツ』です。正式名称は「Apache Struts」です。名前の由来は
名前の由来は調査したところ出てきませんでしたが、Strutsを和訳すると「支柱」という意味があります。Javaプログラミングにおける「支柱」を担う存在を意味して命名された可能性があります。
StrutsはApacheソフトウェア財団の『Apache Strutsプロジェクト』によって開発、管理されているJava向けオープンソースWebアプリケーションフレームワークです。発端はクレイグ・マクラナハン氏によって開発が行われており、2000年にApacheソフトウェア財団へ寄与され、2001年に初版がリリースされました。
当時『Jakarta Project』に位置しており「Jakarta Struts(ジャカルタ・ストラッツ)」と呼ばれていました。2005年になるとJavaWebフレームワークのデフォルトスタンダードと呼ばれるほど世に浸透していきました。
2007年にはStruts2がリリースされ、これまでの仕組みを逸脱し新たなフレームワークとして置き換えられました。Struts1としての最終バージョンは2008年10月にリリースされた『Struts1.3.10』です。(こちらは2013年4月にサポートを終了)Struts2においては2020年10月現在でもバージョンアップ及びサポートが続けられております。Strutsついて簡単に以下の年表にまとめておりますのでご覧ください。
年代 | 内容 |
199X年 | クレイグ・マクラナハン氏によって開発 (Strutsの発起人) |
2000年5月 | Apacheソフトウェア財団へ寄与 |
2001年 | Struts初版リリース |
2005年 | Apacheのトップレベルプロジェクトに昇格 |
2007年 | Struts2初版 リリース |
2008年 | Struts1最終バージョン |
2013年4月 | Struts1サポート終了 |
2016年5月 | Struts2.5 リリース |
2020年9月 | Struts2.5.25 リリース |
Struts1の特徴を見ていきましょう。
StrutsはJavaフレームワークの中でも長い歴史を持つという特徴があります。Strutsの初版がリリースされたのは2001年のことです。歴史が長い分、多くの開発にて使用されておりドキュメントが豊富に残されております。下記のように他の有名なJavaフレームワークと比べてみても長い歴史を持つことが分かります。
Javaフレームワーク | 誕生 |
Struts | 2001年 |
Spring | 2003年 |
JSF | 2004年 |
Play Framework | 2007年 |
Strutsは、JavaプログラムをModel(モデル)、View(ビュー)、Controller(コントローラ)の3つの役割に分けて記述するように設計されているというMVCを採用しているという特徴があります。このようにMVCを採用していることで実装部分における作業負担を軽減することができます。
MVCモデルの歴史、特徴などについて解説された記事はこちら>>
Strutsはバリデーション機能を持つという特徴があります。バリデーション機能とは入力データの必須チェックや文字数チェックの処理など入力チェック用のプログラムを実装する手間が省くことのできる機能です。
Struts2の特徴を見ていきましょう。
Struts2はStruts1の後継機であるものの全くの別仕様であるという特徴があります。名称が同じなだけあって、似たような仕様をイメージする方が多いと思います。しかし1系では「Jakaruta」2系では「WebWork2」という全く別物の考え方を取り入れております。
Struts2はプラグイン機能がシンプルに利用できるという特徴があります。Struts1でもプラグイン機能はありましたが、Struts2では追加機能のJARファイルを置くだけという非常にシンプルな形で利用することができます。
Struts2はアノテーション機能を持つという特徴があります。ソースファイルにアノテーションを設定することでXMLファイルでの設定を減らせる仕様となっております。
Struts以外のJavaによるシステム開発に用いられる代表的なフレームワークを紹介させていただきます。
SpringとはJavaに活用されるロッド・ジョンソン(Rod Johnson)氏によって開発されたオープンソースアプリケーションフレームワークです。Javaにおけるフレームワークの中でも長い歴史を持ち、世界中のシステム開発に利用されております。
Springの特徴は様々なプロジェクトと呼ばれるライブラリの集合体で形成されており、開発者が用途に合わせて必要なライブラリを活用するという特徴があります。そのため非常に柔軟性が高いフレームワークとして親しまれております。主なSpringの種類としてSpringBoot、SpringDate、SpringSecurityなどが挙げられます。
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)の一部として取り込まれています。
Strutsを理解するために初心者でも分かる歴史、特徴、基礎知識などを簡単に解説させていただきました。Strutsを一言で表すと『Javaにおいて長い歴史を持ち、最もポピュラーなフレームワーク』です。他にも「MVC」「バリデーション」といった特徴が挙げられます。Strutsについてこの記事に書かれている最低限の内容は理解をしておくようにしましょう。