java - Java中处理复杂配置的最佳方法

标签 java json configuration properties maintenance

所以我在 Java 中为 Accumulo 构建各种索引和摄取类。

但我的问题没有直接关系。

我有一个属性文件,存储一个长列表(假设有两打并且还在增长)关键字和数据库表名。

现在,当我的主类被实例化时,我将所有这些属性读入它们相关的 String 对象并在整个过程中使用它们。然而,其中一些项目需要传递给其他类,有时是大块传递。

我想我的选择是

  • 像现在这样继续前进,这似乎很糟糕,因为如果我以错误的顺序提交 token ,可能会发生各种讨厌的事情。
  • 传递属性对象本身,让每个类处理实例化自己的字符串对象(如果在文件中添加或删除标记,将来维护起来很容易)。
  • 将信息存储在一个 JSON 文件中,该文件作为一个特殊的类对象被读入,该对象被传递给需要从中提取一些信息的任何人(小缺点是每个类都根据需要从表名创建表引用,在使用 JSON 的情况下,继续实例化所有表引用可能是有意义的,这样类就可以请求引用,但随后会在不需要时经常创建一些额外的引用。)
  • 其他一些选项 Java 专家知道我不知道

  • 我对此感到担忧,因为过去我主要是嵌入式和小型系统的 C++ 开发人员。这是我的第一个大型项目之一,所以我试图从一开始就做事。我已经有一堆书,包括设计模式,只是为了让我的脚湿透,但是任何一般的编程实践知识库我都会很乐意接受建议。

    我试图将其概括化,以便其他人受益,但可能需要更多细节,请告诉我。

    最佳答案

    选项(2)似乎是一个好方法。

    一种变体是将所有字符串从主 Properties 对象提取到单独的 Properties(或 HashMap)对象中,可能基于元素名称的前缀。因此类Foo获取名称以 foo. 为前缀的所有属性, 类(class) Bar获取所有 bar.xxx属性等等。

    这将属性保存在逻辑上(和物理上)单独的集合中,并为给定的类提供它需要的那些属性。如果所有类都需要共享公共(public)属性(可能带有 all.global. 前缀,或者根本没有前缀),则可以将这些属性添加到每个单独的 Properties 对象中。

    关于java - Java中处理复杂配置的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12944055/

    相关文章:

    java - 在 Java 中是否有 try/catch 的替代方法来打开文件?

    javascript - 将 JSON 从 jQuery .getJSON 传递到 Python

    arrays - 按子级值对多维数组进行排序

    configuration - gpg2 : How to use another secret and public keyring?

    c# - 在 asp.net 中读取自定义配置文件

    java - 使用 j_security_check 验证用户身份

    JAVA获取URL API

    java - 如何在java中找出强制门户URL

    c# - 提取键值对

    eclipse 插件修改启动配置文件