当前位置: 首页 > 网络应用技术

GO项目配置文件的定义和阅读

时间:2023-03-05 19:25:07 网络应用技术

  当我们编写应用程序时,我们基本上使用配置文件,从各种到等待,我们都有自己的配置文件。尽管没有很多困难,但配置项通常相对复杂,分析和验证将更加麻烦。您如何简化配置文件的定义和分析。

  如果我们想编写服务,则配置项目可能是以下内容:

  我们以前曾配置文件,但是有一个无法添加的问题,因此我们后来切换到格式。

  接下来,让我们看看如何使其易于定义和分析此配置文件?

  首先,我们需要将上述配置要求定义为GO结构,如下所示:

  可以看出,我们对每个配置项目都有某些定义和限制,其中一些定义如下:

  而且,某些属性可以叠加,例如:

  因为当我们定义配置时,我们会提供很多默认值,并将其指定为选项,因此配置文件中的配置项相对较小。那些不需要使用默认值的人,如下:

  这里有笔记。如果所有配置项都是数字,并且您定义的类型是,例如,如果有人经常测试密码,则通常将密码定义为,并且配置应如下写(只要举个例子,一个示例,密码为不建议将Generalit在配置文件中编写):

  这里的双引号不能减少,并且报告的错误较少,因为解析器将在没有双引号的情况下进行分析。

  我们有配置定义()和配置文件()。下一步是加载配置文件。有三种加载配置文件的方法:

  其发电机的默认代码也用于加载配置文件

  为什么我们需要在此处明确指定我们,因为如果您读取默认值,则可能需要在配置中编写特定字符,因此您不会默认读取环境变量。欢迎此设计提及。

  当我们实现类似的解析时,我们通常会使用或相应的库,但是对于我们来说,我们需要在需要时具有更准确的控制。这需要我们的自定义分析。实现完整的代码:

  配置文件代码:https://github.com/zeromicro/go-zero/tree/master/master/core/conf

  分析代码:https://github.com/zeromicro/go-zero/tree/master/core/mapping

  在此处也充分显示使用情况,以及如何通过单元测试确保代码的正确性。

  我总是推荐想法。加载配置文件时也是如此。发生错误后,我立即退出,以便在部署服务时及时发现问题,因为该过程无法启动。

  所有服务配置项目均已加载并通过这种方式自动验证,包括我编写的许多工具的配置,也已实现。希望它能为您提供帮助!

  https://github.com/zeromicro/go-zero

  欢迎使用和明星支持我们!

  请注意“微服务实践”公共帐户,然后单击交换组以获取社区组的QR码。

  如果您有文章或源代码学习说明,请通过公共帐户联系提交!

  原始:https://juejin.cn/post/7095542134366797854