文档

§使用模块扩展 Play

Play 的核心是一个非常轻量级的 HTTP 服务器,它提供了用于服务 HTTP 请求的机制,但除此之外没有太多功能。Play 中的附加功能是通过使用 Play 模块提供的。

§什么是模块?

Play 中没有关于什么是模块或不是模块的严格定义 - 模块可能只是一个提供一些辅助方法来帮助您完成某些操作的库,或者它可能是一个提供复杂功能(例如用户管理)的完整框架。一些模块内置于 Play 中,其他模块由 Play 社区的成员编写和维护。

一些模块提供组件 - 代表资源的对象,例如数据库连接。这些对象可能具有生命周期,需要在应用程序启动和停止时启动和停止,并且它们可能保存一些状态,例如缓存。Play 提供了多种机制来访问和使用这些组件。组件不仅由模块提供,还可以由应用程序本身提供。

§访问模块

在启动新的 Play 项目时,您需要做出的最早决定之一是如何访问模块提供的组件。组件是通过使用依赖注入机制访问的,在这种机制中,您的组件不需要在系统中查找其他组件,而是声明它们需要哪些其他组件,然后系统将这些组件注入到您的组件中。

Play 的核心对任何特定形式的依赖注入都是不可知的,但是 Play 开箱即用并建议您使用 Guice。本文档的其余部分将假设您已经做出了这个决定,但是将提供有关如何与其他依赖注入机制集成的示例。

您可以在 ScalaJava 中了解更多关于依赖注入的信息。

§社区模块

Play 拥有一个 社区开发的模块列表,这些模块可能提供您需要的功能,或作为编写模块的示例。

下一步:使用数据库


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