§アプリケーションへの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();
port
やmode
を渡すことで、サーバーを構成できます。
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
システムプロパティを使用することで構成できます。
このドキュメントにエラーを見つけましたか?このページのソースコードはこちらにあります。 ドキュメントガイドラインを読んだ後、プルリクエストを自由に貢献してください。質問や共有できるアドバイスがありますか?コミュニティフォーラムにアクセスして、コミュニティとの会話を始めましょう。