
「Spring MVC」とは
SpringでWebアプリケーションを開発するためのフレームワークであり、アーキテクチャパターンとしてMVCを用いています。
Javaで、Webアプリを作る場合であれば、筆頭候補になりえるでしょう。
習得難易度は高いの?
はっきり申し上げますと、Javaの経験年数にもよりますが、かなり難易度は高いです。
膨大な数のライブラリがあったり、設定ファイルがあったりと覚えるのが大変ですし、日本語情報も少ないです。
敷居が高いので、Java初心者でこれからWebアプリ開発を始めたいという方は易しめの「Spring Boot」から入った方がよいかもしれません。
MVCとは?
モデル(M)、ビュー(V)、コントローラ(C)のWebの代表的な3層パターンことですが、さらに下記の二つのパターンに分かれます。
- アクションベース
- コンポーネントベース
なお、Spring MVCは、「アクションベース」のMVCパターンを採用しています。
アクションベース
リクエストによって、実行するアクションを決定し、処理の結果をHTMLとして返すことです。
メリット
仕組みが単純で理解しやすく、拡張性が高いこと。
代表的な他のフレームワーク
- Struts
- Seasar2
コンポーネントベース
リクエストや、レスポンスを開発者に意識させることなく、画面ベースに開発していくフレームワークです。
メリット
ボタン、入力フィールド等の画面部品を共通化しやすい点。
代表的な他のフレームワーク
- JSF
Spring MVCの特徴
MVCといわれると、WebアプリのMVCを全て作ることができそうですが、基本的には「プレゼンテーション層(VとCの部分)」がメインになります。
M(データ管理)の部分に関しては、データベース管理に必要な各種機能を利用していくことになります。
また、VEIWの部分に関しても、全体フローを管理していく「Spring Web Flow」といったものと組み合わせて構築していくことになります。
サードパーティライブラリとの連携が充実
- JSONを操作できる、「Jackson」
- レイアウトエンジンの「Apache Tiles」
- テンプレートエンジンの「FreeMarker」
- RSS/Feed操作の「Rome」
- 帳票出力の「JasperReorts」
- Bean Validationの「Hibernate Validator」
- 日付操作の「Joda-Time」
その他特徴
- POJO(Plain Old Java Object)で実装されている。
- アノテーションベースで設定ができる。
- Servlet APIが抽象化されている。
- Spring DIとの連携機能がある。
- 「Spring Roo」というツールを使えば、プロジェクトを自動生成できる。
Spring Roo(スプリング・ルー)
簡単なコマンドだけで、アプリ本体からMVCファイル、ユニットテストコード、アクセス制御までを自動生成してくれます。
「超高速開発」という意味では、「Railsライク」といえるでしょう。
この記事へのコメントはありません。