Web アプリケーションを MVC アーキテクチャーで開発する際に使用するフレームワークです。
フロントコントローラーパターンを採用しています。
Spring MVC の特徴
Controller や Model などのクラスは POJO として実装する
Servlet API 、フレームワーク独自のインターフェースを排除でき、ユニットテストがしやすい
Spring の DI や AOP の仕組みを活用でき、効率的に Web アプリケーションを開発できる
View の実装技術を抽象化できる。Controller では View 名だけ意識すればよく、View の実装 (JSP 、Tymeleaf など) を意識する必要がない
💡 POJO (Plain Old Java Object)
ごく普通の Java オブジェクトを指します。
継承や依存関係がないクラスとして作成します。
この名称が提唱される以前よりある Java Beans では Bean に次の条件があったため、それよりシンプルな設計となります。
public で引数なしのコンストラクタを作成する
メソッドはアクセサメソッドの命名規則 (getXXX / setXXX) に従う
シリアライズ可能にする (implements java.io.Serializable)
💡Thymeleaf(タイムリーフ)
HTML に可変データを埋め込む仕組みを持つ テンプレートエンジン です。
埋め込みを行えるものとして JSP がありますが、JSP ではブラウザーが認識できない式やタグライブラリーなどが含まれるため、開発中にブラウザーで表示を確認することが難しく、デザイナーとの分業が難しいというデメリットがありました。
一方、Thymeleaf は HTML5 に準拠した HTML であるため、ブラウザーで表示でき、分業することができます。