Play 模块

在Play的核心,是一个非常轻量级的HTTP服务器, 提供服务于HTTP请求的机制, 但别的就没什么了。 Play中的一些附加功能是通过使用Play模块来提供。

什么是模块?

在Play中对是什么是模块什么不是模块,没有严格的定义―― 模块可能只是一个库,它提供一些助手方法来帮你做些什么,又或者它可以是一个完整的框架,提供复杂的功能,如用户管理。一些模块是建立在Play上的,其它的一些是通过Play社区的成员编写和维护。

一些模块提供组件 ―― 表示资源的对象, 例如一个数据库连接。这些对象可能有生命周期,并且需要在应用程序启动时启动和应用程序停止时停止, 他们可能持有状态,如缓存。Play 提供了各种机制,以访问和使用这些组件。组件不仅通过模块提供, 他们可能通过应用程序自身提供。

访问模块

当你开始一个新Play项目时,你需要最早决定的是如何访问模块提供的组件。组件可以通过使用依赖注入机制访问, 而不是让你的组件查找系统中的其它组件, 你的组件声明他们需要其它什么组件, 然后系统注入这些组件到你的组件。

在它的核心, Play是独立于任何特定的依赖注入的形式, 然而Play提供开箱即用并且我们推荐你使用:Guice。本文档的其余部分假设这是你所做的决定, 不管怎样这会是如何与其他依赖注入机制集成的例子。

你可以了解更多关于依赖注入,在ScalaJava