文档

§将 Play 服务器嵌入您的应用程序

虽然 Play 应用程序最常被用作其自身的容器,但您也可以将 Play 服务器嵌入到您现有的应用程序中。这可以与 Twirl 模板编译器和 Play 路由编译器结合使用,但这些当然不是必需的,嵌入 Play 应用程序的常见用例是因为您只有几个非常简单的路由。

启动嵌入式 Play 服务器的最简单方法是使用 Server 工厂方法。如果您只需要提供一些简单的路由,您可能决定使用 路由 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 系统属性来配置。

下一步:Scala 开发人员的 Play


在此文档中发现错误?此页面的源代码可以在 此处 找到。阅读完 文档指南 后,请随时贡献拉取请求。有疑问或建议要分享?前往 我们的社区论坛 与社区开始对话。