java - 使用 Protobuf 处理配置文件

标签 java protocol-buffers

我对 Protobufs 比较陌生,我想知道如何使用它来处理结构列表。

假设我有一个如下所示的配置文件:

Bucket{
    name = "A";
    path = "~/Document/...";
    traffic = 5;
}
Bucket{
    name = "B";
    path = "~/Document/...";
    traffic = 6;
}
Bucket{
    name = "C";
    path = "~/Document/...";
    traffic = 7;
}

等等等等

因此,我使用 protobuf 来基本上构建它,以便稍后在 Java 中使用。我本质上是试图在 map 中制作 map (一个 protobuf 来帮助找到正确的存储桶,然后另一个 map 来获取存储桶内的成员属性)。

option java_outer_classname = "Buckets";

message Bucket {
    required string name = 1;
    required string path = 2;
    optional int32 traffic = 3;
}

message BucketList {
    required Bucket bucket = 1;
}

我对如何链接这两者感到困惑,例如,如何将配置文件传递到 protobuf 方法中(在编译成 java 类之后)并使用 to 访问存储桶成员来执行类似的操作比如说从名称为 A 的存储桶中获取路径?

谢谢!

最佳答案

使用 Protobuf 作为声明和解析文本配置文件的机制是完全可以接受的。然而,必须记住,Protobuf 的目的是声明文件的格式,无论是纯文本还是二进制有线格式。读取配置后,需要在自定义应用程序代码中强制执行更高级别的语义约束。

关于java - 使用 Protobuf 处理配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37668258/

相关文章:

java - 签名的 Java Applet 不工作

Java boolean 数组打印出真问题

java - for循环中的字符串比较

java - Protocol Buffer Java RPC 栈

serialization - Protocol Buffer 中的字典

rest - 在 gRPC 之上对 REST web 服务进行版本控制

java - 我如何检查一个字符串是否包含Java中所有重复的字母?

java - 应用程序的旧副本出现在 Android 模拟器上(使用 Eclipse IDE)

node.js - gRPC Node : How to set a field that is of another Message type (with multiple types itself)

android - 需要 Android ProtoBuf RPC 示例吗?