Play FrameworkとSpring Bootを比較

    「Play Framework」と「Spring Boot」の概要

    「Play Framework」と「Spring Boot」は、主要なWebアプリケーションフレームワークです。

    ■「Play Framework」とは

    「Play Framework」は、オープンソースWebアプリケーションフレームワークです。

    「Java」および「Scala」で記述できるRESTfulなMVCフレームワークであり、「Ruby on Rails」ライクな高い生産性が特徴です。

    独自の組み込みWebサーバ「Netty」を搭載しており、簡単なコマンドの実行でアプリケーションの雛形を構築し、開発をスピーディーにスタートできます。

    ■「Spring Boot」とは

    「Spring Boot」は、Javaプラットフォーム向けオープンソースアプリケーションフレームワーク「Spring」をベースとした開発環境です。

    本番環境グレードのスタンドアロンアプリケーションを簡単に作成できます。

    Springアプリケーションのセットアップに必要なボイラープレート構成を排除し、より高速で効率的な開発エコシステムとして機能します。

    ユースケース比較

    ■Play Framework

    Springフレームワークは「マイクロサービスアーキテクチャ」に適しています。

    開発者は「自身が習熟しているプログラミングモデル」から逸脱することなく、アプリケーションを作成できます。

    ■Spring Boot

    「Spring Boot」は、大規模エンタープライズアプリケーションの構築に重点を置いています。

    すべてをスムーズに機能させるために、Springエコシステムに大きく依存しています。

    「Play Framework」の特徴

    ■[○]整備されたドキュメント

    「基本的な開始チュートリアル」と「具体的なドキュメント」が用意されており、スムーズに開発を開始できます。

    ■[○]迅速なアプリケーション開発

    ブラウザでのエラーチェック(テスト)において、リアルタイムでコーディングしてすばやく確認できます。

    アプリケーション全体を再起動(再コンパイル)する必要はなく、ページを更新するだけで状態がリフレッシュされます。

    ■[○]非同期リクエスト

    「Play Framework」は「非同期リクエスト」を念頭に置いて構築されているため、複数スレッドを利用した開発を実施できます。

    ■[△]Java→Scala

    コアがJavaからScalaで再構築されたため、Javaフレームワーク要素が減少しています。

    ■[×]後方非互換性

    「Play2.x」は「Play1.x」と互換性がありません。

    開発者は、リリースに応じて、フレームワークを最初から理解し、既存コードを書き直す必要があります。

    「Spring Boot」の特徴

    ■[○]「Spring Framework」の強みをすべて活用

    「Spring Boot」は、「Spring Framework」の薄い構成レイヤーであり、Springのすべての長所を継承しています。

    ■[○]ラピッドプロトタイピング

    「Spring Boot」は、ラピッドプロトタイピング用途向けに構築されています。

    ■[×]優れたUI構築

    「Spring Boot」は、サーバ側でコードを開発および保守するための豊富な機能セットを備えています。

    しかし、「優れたユーザーインターフェースを構築するためのフレームワーク提供」は弱みとなっています。




    参考サイト
    →medium.com →「Spring vs Play framework with Java」
    →slant.co →「Spring-boot vs Play Framework detailed comparison as of 2022」
    →slant.co →「Play 2 vs Spring-boot detailed comparison as of 2022」

    ※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

    基本情報

    概要

    Play Framework(プレイフレームワーク)とは、オープンソースWebアプリケーションフレームワークです。肥大化したエンタープライズJavaを代替する洗練されたフレームワークで、「Ruby on Rails」ライクな生産性をもたらします。Java/Scalaで記述できるRESTfulなMVCフレームワークです。

    既存のJavaフレームワークの問題点

    既存のJavaのWebフレームワークは重厚長大であり生産性が高くないという問題があります。「開発生産性」と「柔軟性」が求められていました。

    基本説明

    Play frameworkは、「Ruby on Rails」哲学をJavaで実現することを目的としたフレームワークです。高い生産性が特徴です。

    独自の組み込みWebサーバ(Netty)を搭載しており、簡単なコマンドの実行でアプリケーションの雛形を構築し、開発をスピーディーにスタートできます。

    経緯

    Play Frameworkは、Zenexity社のソフトウェア開発者であるGuillaume Bort氏によって作成されました。初版は2007年に発表されています。

    TOPに戻る

    主な特徴

    モジュラー構造

    「Ruby on Rails」や「Django」のようにモジュール構造を採用しています。

    Scala言語のサポート

    PlayはJavaとScalaでコーディングできます。Playは内部的にScalaを使用しており、ScalaAPI/JavaAPI双方を公開しています。Javaとも完全な互換性があります。

    (参考)Scalaとは
    →OSSニュース →OSS情報 →Scala

    直接コンパイル、動的リロード

    Play frameworkでは、ソースが更新されると即座に変更が反映されるようになっています。コンパイルやサーバ再起動の必要はありません。IDEがなくても軽量なエディタだけで開発可能です。

    分かりやすいエラー表示

    フレームワークはできる限りエラー原因を特定して表示します。

    シンプルステートレスMVCアーキテクチャ「Share Nothing」

    HTTPモデルをハックする必要はありません。「画面部品の同時レンダリング」や「画面の一部(段階的)更新」を容易に行えます。

    効率的なテンプレートエンジン「Groovy」

    Playのテンプレートエンジン「Groovy」は、Java構文と一貫性を持ちます。「HTMLレスポンスレンダリング」「emailメッセージ」「JSONレスポンス」などに対応します。

    オブジェクトリレーショナルマッピングAPI「Java Persistence API」

    Playは自動的にエンティティマネージャを起動し同期を行います。

    テストランナー

    標準搭載されているテストランナーは、「シンプルユニットテスト」から「完全受入テスト」まで、あらゆる種類のテストを記述でき、テスト駆動開発による作業を容易にします。

    フルスタック・アプリケーションフレームワーク

    フレームワークとして必要とされている一通りの機能を搭載しています。主に必要とされるAPIも標準で組み込まれています。

    IDE連携

    Play Frameworkのプロジェクトを、「Eclipse」「NetBeans」「IntelliJ IDEA」の各IDEのプロジェクトとして出力できます。

    「Java EE」との関係

    Play frameworkを動すためには、「Java SDK」(バージョン6以上)が必要です。それ以外の必要条件はありません。Java標準Webアプリケーション仕様である「Java EE」の中核機能は必要としません。

    「JavaEE規約」よりも、W3Cの「World Wide Webアーキテクチャ」に沿うことを優先しています。

    RESTful

    完全なRESTfulです。Java EEのように接続ごとのセッションを利用しません。すべてCookieを使用します。

    JSPは使用しない

    JSPは使用せず、htmlとGroovyを組み合わせて使用します。

    非同期IO

    ノンブロッキングIOモデルに基づく非同期通信をサポートしています。

    Webサーバ「Netty」を使用するため、非同期的に大きなリクエストを処理できます。HTTPスレッド数以上の処理を実行できます。

    TOPに戻る

    その他ポイント

    ・CRUD:モデルオブジェクトをシンプルに更新するためのモジュール
    ・Secure:単純なユーザ認証を実現するモジュール
    ・アノテーションを元としたバリデーションフレームワーク
    ・ジョブスケジューラ
    ・SMTPメーラー
    ・JSONとXMLの解析
    ・オブジェクトリレーショナルマッピング「Java Persistence API」を元とした永続化層
    ・素早いデプロイメント/テストのための組み込みDB
    ・完全に組み込まれたテスティングフレームワーク
    ・自動的なファイルアップロード機能
    ・複数環境向けの設定
    ・「Hibernate」「OpenID」「Memcached」などのサポート
    ・スケールしやすいステートレスモデルの採用

    TOPに戻る

    同様製品(概要情報)

    同様な機能を提供する製品として、次のようなものがあります。

    オープンソース製品:「Java EE」など。

    TOPに戻る

    導入事例

    Playは、地方政府/企業イントラネット/モバイル向けWebサイト/OSSなどの幅広いプロジェクトで採用されています。

    ビジネス特化型SNS「LinkedIn」など、世界の多くの企業/行政機関で導入されています。

    TOPに戻る

    ライセンス情報

    Play Frameworkのライセンスは、「Apache License」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。

    TOPに戻る

    ダウンロード

    ダウンロードページ

    TOPに戻る

    ※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。


    概要

    「Spring Boot」は、Javaプラットフォーム向けオープンソースアプリケーションフレームワーク「Spring」をベースとした開発環境です。

    本番環境グレードのスタンドアロンアプリケーションを簡単に作成できます。

    Springアプリケーションのセットアップに必要なボイラープレート構成を排除し、より高速で効率的な開発エコシステムとして機能します。

    オフィシャルサイト情報

    ■オフィシャルサイト

    →spring.io →projects →spring-boot

    ■GitHub

    →github.com →spring-projects/spring-boot

    ■ライセンス情報

    Spring Bootのライセンスは「Apache License 2.0」です。

    詳細について、こちらを参照ください。
    →github.com →spring-projects/spring-boot →LICENSE.txt

    ■システム要件

    →docs.spring.io →spring-boot →docs →reference →getting-started.html [→#getting-started.system-requirements]

    ■インストール

    →docs.spring.io →spring-boot →docs →reference →getting-started.html [→#getting-started.installing]