JavaでのWeb開発に欠かせないフレームワークをご紹介

昨今、ソフトウェア開発を行なう上において、フレームワークの存在はますます重要になっています。フレームワークとは、共通的な処理や取り決め、プログラムのひな形を集めたもので、システム開発の生産性向上、メンテナンス性向上が期待できるものです。本稿では、JavaでWeb開発をする上で欠かせないフレームワークについて、代表的なものをご紹介いたします。

フレームワークとは

プログラミング,kuguru,クグル,くぐる

フレームワークとは、ソフトウェアを開発する、または実行する時に利用する共通的な基盤です。フレームワークは、よく使われる共通的な処理をまとめたライブラリ群、画面遷移など一定のルールさえ決めれば簡略化できる処理とその設定、プログラムを楽に書くためのひな形集などから構成されます。

フレームワークをうまく利用すれば、例えば複雑なコードをたくさん書かなければいけないところを、本の数行で同じことができたり、共通的な動作を統一してバラツキを無くしたり、オペレーティングシステムの変更をフレームワークで吸収してプログラムへの影響を軽くしたり、など、開発や運用の手間を大幅に削減することができます。これにより、生産性の向上やメンテナンス性の向上が期待できます。

フレームワークのモデルにはいろいろありますが、Webアプリケーションの世界では、MVCモデルが有名です。MVCとは、Model-Controll-Viewの略で、システム全体をModel(データ処理を担当)、View(データ表示を担当)、Controll(ModelとViewの仲介を担当)の3つに分けて作成する手法です。こうすることで、どこで何をやるのかが明確になり、システムを作りやすく、また変更しやすくすることができます。

それでは、JavaのWeb開発で良く使われるフレームワークをご紹介します。

Spring Framework

歯車,kuguru,クグル,くぐる

最近、流行し始めたフレームワークです。DI(Dependency Injection)とAOP(Aspect Oriented Programming)が有名です。DIの特徴は、変更に強いことです。特に大規模な開発で威力を発揮します。これまでのJavaフレームワークは、どちらかというと新規開発の生産性が重視され、変更についてはあまり考慮されていませんでした。しかし、実際は新規開発よりも運用フェーズに入ってからの変更の方が、重要なケースが多いといえます。このフレームワークは、こうした変更に重点をおいたものです。中でも、専用のテストプログラムによって、単体ではなく、結合してテストできる機能は強力です。
AOPは、クラスには本質的な処理だけを書いて、そうでない処理は別に書くことができる機能です。こうすることで、ソースコードがわかりやすくなり、不具合があった時も原因が特定しやすくなります。さらに、再利用もしやすくなりますので、とても優れた仕組みと言えます。
Spring Framework自体も、そのほとんどがインタフェースとして提供されているため、必要な機能だけを選択して利用することができます。いわゆる「軽い」フレームワークとなっています。

Java EE

Java EEは、Java Enterprise Editionの略です。Javaの管理元であるOralce社が提供している、公式のフレームワークです。企業の基幹系システムのような大規模システムを構築するのを目的としています。ava EEは、プレゼンテーション層(Web層)、ビジネスロジック層、エンティティ層から構成されています。プレゼンテーション層はデータ表示を制御するためのもので、ビジネスロジック層はデータ処理を、エンティティ層はデータベースなどのデータ永続化ソースの処理を行います。
大規模向けなので、中・小規模のシステムには、やや重たいフレームワークとなっています。Javaフレームワークの中では最古参のひとつなので、これで開発されているシステムが数多く存在します。

Struts

キーボード,タイプ,PC,kuguru,クグル,くぐる

一昔前までは、Javaのフレームワークと言えばこれ、というくらい使われていたフレームワークです。しかしながら、Struts2になってから、相次いで脆弱性が指摘され、他のフレームワークへ乗り換える動きも出ています。MVCアーキテクチャを採用しており。世界的に人気でした。MVCを流行させた立役者ではありますが、脆弱性のために、これから採用される機会は減りそうな状況です。

Play Framework

今回ご紹介するフレームワークの中では、最も新しいものです。他のフレームワークに比べて、変更に強い設計になっています。というか、変更しやすさを追求したフレームワークです。リファクタリングがしやすい仕組みになっており、また、リファクタリングしてもテストしやすいという特徴があります。

他のフレームワークでありがちな、設定ファイルの煩わしさもありません。これは結構重要で、特に規模が大きくなると設定ファイルが重荷になるケースが多いのが実情です。全体的に、軽量さ、柔軟性がJavaのフレームワークと思えないほど優れています。お手本は名高いRuby on railsです。これをJavaに持ち込んだのが、Play Frameworkです。

まとめ

本稿では、JavaのWeb開発で良く利用されるフレームワークをご紹介しました。これ以外にもJavaフレームワークは複数存在しますが、まずは、今回ご紹介したものを知っておけば十分でしょう。一時期は、Javaのフレームワークと言えばStrutsという状態でしたが、最近はPlay Frameworkが人気です。また、Java EEで構築されたシステムも数多くありますので、これから新規にJava EEで開発することは減るでしょうが、メンテナンスで出くわす可能性は十分あります。

関連記事

ページ上部へ戻る