本手册正在编写中,目前尚未完善。
如果您想帮助改进它,我们希望您能这样做,请查看 README

18 配置

大多数应用程序都需要一定程度的配置。这可以用来指定要使用的正确外部资源(数据库、其他服务等)、调整性能或以其他方式调整以满足给定环境的要求。Ratpack 提供了一种简单灵活的机制来访问 Ratpack 应用程序中的配置信息。

配置数据是通过使用 Jackson 的对象绑定来访问的。Ratpack 提供的配置对象旨在开箱即用。配置数据可以从多个来源加载,例如 YAML 文件、JSON 文件、属性文件、环境变量和系统属性。

1.18 快速入门

要开始

  1. 在您的 RatpackServer 定义函数中,构建一个 ConfigData 实例(有关示例,请参见类文档)
  2. 从配置数据中检索绑定的配置对象

2.18 配置来源

ConfigDataBuilder 提供了方法来轻松地从最常见的来源加载数据。

可以使用 yamljsonprops 方法使用常用的文件格式。提供的签名可用于从本地文件(StringPath)、网络(URL)、类路径(使用 Resources.getResource(String) 获取 URL)或任何其他可以作为 ByteSource 处理的位置加载数据。此外,您可以从非文件来源加载数据,例如 Map/Properties 对象(对于默认值特别有用;请参见 示例)、系统属性和环境变量。您还可以选择使用 object 方法从现有对象加载配置数据。如果需要额外的灵活性,您可以提供自己的 ConfigSource 实现。

1.2.18 扁平配置来源

环境变量、PropertiesMap 是扁平的数据结构,而 Ratpack 使用的绑定模型是分层的。为了弥合这一差距,这些配置源实现应用了约定,允许将扁平的键值对转换为有用的数据。

1.1.2.18 环境变量

默认环境变量配置源使用以下规则

如果需要自定义环境解析,您可以提供 EnvironmentParser 实现。

2.1.2.18 属性/映射

默认 Properties/Map 配置源使用以下规则

3.18 使用

1.3.18 排序

如果您有多个配置源,请从最不重要到最重要的顺序将它们添加到生成器中。例如,如果您有一个希望能够通过系统属性覆盖的配置文件,您将首先添加配置文件源,然后是系统属性源。同样,如果您有希望能够通过环境变量覆盖的默认设置,您将首先添加默认设置源(可能通过 props),然后是环境变量源。

2.3.18 错误处理

ConfigDataBuilder 文档 中所示,onError 可用于在从配置源加载数据时遇到错误时自定义行为。最常见的是,这用于通过忽略加载异常来使配置源成为可选的。

3.3.18 对象映射器

Ratpack 使用 Jackson 进行配置对象绑定。使用的默认 ObjectMapper 配置了预先加载的常用 Jackson 模块,并设置为允许不带引号的字段名称、允许单引号以及忽略未知字段名称。这旨在使其易于使用,开箱即用。但是,有时您可能希望更改 Jackson 配置设置或添加额外的 Jackson 模块。如果是这样,可以通过 ConfigData.of(...) 的各种签名或通过 ConfigDataBuilder.configureObjectMapper(...) 来完成此操作。

4.3.18 绑定

构建好 ConfigData 实例后,您可以将数据绑定到配置对象。最简单的选项是定义一个类来表示应用程序配置的全部内容,并使用 ConfigData.get(Class) 一次性绑定到它。或者,您可以使用 ConfigData.get(String, Class) 在数据中的指定路径处一次绑定一个对象。对于绑定到 ServerConfig 对象的常见情况,提供了 ConfigData.getServerConfig(...) 签名以方便起见。