本手册尚未完善,正在不断完善中。
如果您想帮助改进它,我们希望您这样做,请参阅 README

13 Google Guice 集成

ratpack-guice 扩展提供了对 Google Guice 的集成。此扩展的主要功能是允许服务器注册表由 Guice 构建。也就是说,一个 Guice Injector 可以作为 Ratpack Registry 提供。这允许应用程序的连接由 Guice 模块和绑定来指定,但仍然允许注册表成为运行时不同 Ratpack 扩展之间的通用集成层。

截至 2.0.0-rc-1,ratpack-guice 模块针对 Guice 5.1.0(以及 多绑定扩展)构建,并依赖于它们。

1.13 模块

Guice 提供了模块的概念,它是一种提供对象的配方。有关详细信息,请参阅 Guice 的 “入门” 文档。

ratpack-guice 库提供了 BindingsSpec 类型,用于指定应用程序的绑定。

2.13 依赖注入的处理程序

Guice 集成为您提供了一种解耦应用程序组件的方法。您可以将功能分解为独立的(即非Handler)对象,并从您的处理程序中使用这些对象。这使得您的代码更易于维护和测试。这是标准的“依赖注入”或“控制反转”模式。

Guice 类提供静态 handler() 工厂方法,用于创建作为应用程序基础的根处理程序。这些方法(常用的方法)公开了 Chain 实例,该实例可用于构建应用程序的处理程序链。这些方法公开了的实例提供了可以通过 getRegistry() 方法获取的注册表,该注册表可用于构造依赖注入的处理程序实例。

有关示例代码,请参阅 Guice 类的文档。

3.13 Guice 和上下文注册表

TODO 基于 guice 的注册表实现

这提供了一种依赖注入处理程序的替代方法,因为对象可以直接从上下文中按需检索。

更有用的是,这意味着 Ratpack 基础设施可以通过 Guice 模块集成。例如,Guice 模块可以提供 ServerErrorHandler 的实现。由于 Guice 绑定的对象已集成到上下文注册表查找机制中,因此此实现将参与错误处理基础设施。

对于所有通过上下文注册表查找工作的 Ratpack 基础设施,情况都是如此,例如 Renderer 实现。