如何动态配置应用程序?

4

当我说“配置”时,我指的是保存那些可能经常更改的值(如税率等常量值),当您需要更改它们时,您不希望重新编译您的应用程序。

在哪里保存这些值?数据库?XML 文件?平面文件?

6个回答

3
这取决于这些设置有多频繁更改以及谁或什么更改它们。对于某些特定于应用程序的设置,最好使用XML或配置文件,由开发人员负责更新。对于其他“业务”值(如汇率、税率等),最好将其保留在数据库中,并为用户(而不是开发人员)提供UI以进行更新。
此外,这还取决于有多少应用程序依赖于该值,例如,如果几个应用程序依赖于某些设置(如电子邮件服务器地址),则最好将其放入数据库中,因为它可以轻松地从运行应用程序的任何机器上访问。

1

我使用INI文件来存储潜在的用户可配置文件,而使用BIN文件来保存运行间会话状态的数据。

但是,这非常依赖于您正在开发的应用程序类型。


0

这取决于您的应用程序如何架构。您可以设计应用程序,使得您可以通过注入提供程序来更改配置位置。


你说得对,问题在于当系统需要修改时,它非常庞大且具有任何架构设计。 - Rulas
那么看起来你可能想把这些设置保存在数据库中。 - Ricardo Villamil
我不希望,但我认为这是必要的恶。 - Rulas

0
通常情况下,如果数据有结构,我会使用Ini文件或XML。
对于已经使用数据库的应用程序,而且您不希望用户轻易更改数据,可以使用数据库。
我几乎从不使用二进制数据,除非您想要为用户混淆数据。

0

无论是哪种应用程序,您可能至少有三个配置数据源:

  1. 命令行标志,通常用于引导运行时环境,例如查找配置文件、设置调试标志、包含路径、类路径等
  2. 配置文件,可能有多个,可以互相覆盖。这些通常是引导应用程序的:连接字符串、缓存设置、构建特定设置等
  3. 数据库中的控制数据。例如时区、转换率、稳定的显示值等。这些数据也应该在数据库中进行版本控制(即,“数据版本”字段,而不是存储在版本控制系统中)。将其版本化将在您发现需要为新版本更改设置但旧版本会崩溃时节省很多麻烦。

通常,任何在运行时更改的内容都应该放在数据库中。任何敏感且很少更改的内容都应该放入配置文件中,任何hack都应该放在命令行上(当您需要时,--[no]enable-bug-287438-hack非常方便)。


0

我更喜欢使用简单的平面格式 ini 文件。这里有一个示例 Setting,您可能会发现有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接