ドキュメント

§アプリケーションへのPlayサーバーの埋め込み

Playアプリケーションは通常、それ自身のコンテナとして使用されますが、Playサーバーを既存のアプリケーションに埋め込むこともできます。これは、TwirlテンプレートコンパイラおよびPlayルートコンパイラと組み合わせて使用できますが、これらはもちろん必須ではありません。Playアプリケーションを埋め込む一般的なユースケースは、非常に単純なルートがいくつかしかない場合です。

埋め込みPlayサーバーを起動する最も簡単な方法は、Serverファクトリメソッドを使用することです。必要なのがいくつかの簡単なルートを提供することだけである場合は、Routing DSLを使用することに決定するかもしれません。したがって、次のインポートが必要になります

import play.routing.RoutingDsl;
import play.server.Server;
import static play.mvc.Controller.*;

次に、forRouterメソッドを使用してサーバーを作成できます。

Server server =
    Server.forRouter(
        (components) ->
            RoutingDsl.fromComponents(components)
                .GET("/hello/:to")
                .routingTo((request, to) -> ok("Hello " + to))
                .build());

デフォルトでは、これはテストモードでランダムなポートでサーバーを起動します。httpPortメソッドを使用してポートを確認できます。

CompletionStage<WSResponse> response =
    ws.url("http://localhost:" + server.httpPort() + "/hello/world").get();

portmodeを渡すことで、サーバーを構成できます。

Server server =
    Server.forRouter(
        (components) ->
            RoutingDsl.fromComponents(components)
                .GET("/hello/:to")
                .routingTo((request, to) -> ok("Hello " + to))
                .build());

サーバーを起動したら、停止するには、stopメソッドを呼び出すだけです。

server.stop();

注: Playを起動するには、アプリケーションシークレットを構成する必要があります。これは、アプリケーションにapplication.confファイルを提供するか、play.http.secret.keyシステムプロパティを使用することで構成できます。

次へ:Scala開発者向けのPlay


このドキュメントにエラーを見つけましたか?このページのソースコードはこちらにあります。 ドキュメントガイドラインを読んだ後、プルリクエストを自由に貢献してください。質問や共有できるアドバイスがありますか?コミュニティフォーラムにアクセスして、コミュニティとの会話を始めましょう。