如何通过Mapstructure将MongoCluster映射到mongo.cluster路径?
方案可行,直接通过mapstructure标签路径实现
完全可以不用新建Cluster结构体,直接调整mapstructure标签的路径就能完成映射,具体做法如下:
调整Config结构体的标签
把原来Config中MongoCluster字段的mapstructure标签值从mongoCluster改为mongo.cluster,用点分隔的路径指向新的YAML层级。代码示例
原结构体定义:type Config struct { MongoCluster MongoCluster `mapstructure:"mongoCluster"` } type MongoCluster struct { Group string `mapstructure:"group"` Name string `mapstructure:"name"` }修改后的结构体定义:
type Config struct { MongoCluster MongoCluster `mapstructure:"mongo.cluster"` } type MongoCluster struct { Group string `mapstructure:"group"` Name string `mapstructure:"name"` }对应新YAML配置
mongo: cluster: group: "dev-group" name: "dev-cluster"
原理很直接:mapstructure库支持用点分隔的字符串指定嵌套的配置路径,这样就跳过了中间定义Mongo结构体的步骤,直接将MongoCluster和mongo.cluster层级做绑定。
内容的提问来源于stack exchange,提问作者lcguida
相关产品推荐
相关产品推荐

