如何动态配置应用程序?

时间:2009-01-28 19:53:16

标签: language-agnostic configuration

当我说“配置”时,我的意思是保存那些可能经常更改的值(常量值,如税率或类似值),然后当您需要更改它们时,您不想重新编译您的应用程序

保存这些值的位置?数据库? XML文件?平面文件?

6 个答案:

答案 0 :(得分:3)

这取决于这些变化的频率以及改变它们的人或者是什么。对于某些特定于应用程序的设置,最好使用XML或配置文件,开发人员负责更新它。对于其他“商业”价值(如汇率,税率等),最好将它们保存在数据库中,并为用户(而非开发人员)提供更新的UI。

它还取决于有多少应用程序依赖于此值,例如,如果多个应用程序依赖于某些设置(例如电子邮件服务器地址),则最好将其放在数据库中,因为它可以从任何设备轻松访问应用程序运行的机器。

答案 1 :(得分:1)

我将INI文件用于潜在的用户可配置文件,将BIN文件用于在运行之间保存会话状态的数据。

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

答案 2 :(得分:0)

这取决于您的应用是如何构建的。您可以设计应用程序,以便更改配置的位置。只需注入提供者。

答案 3 :(得分:0)

通常情况下,如果数据是结构化的,我会使用Ini文件或XML。

对于已经使用数据库并且您不希望让用户轻松更改数据的应用程序,您可以使用该数据库。

除非你想为用户混淆数据,否则我几乎从不使用二进制数据。

答案 4 :(得分:0)

无论应用程序如何,您可能至少会拥有3个配置数据源:

  1. 命令行标志,通常用于引导运行时环境,例如查找配置文件,设置调试标志,包含路径,类路径等。
  2. 配置文件,可能不止一个可能互相覆盖的文件。这些通常会引导您的应用程序:连接字符串,缓存设置,特定于构建的设置等
  3. 控制数据库中的数据。时区,转换率,稳定显示值等等。此数据也应在数据库中进行版本控制(如“数据版本”字段,不在版本控制系统中)。当您发现需要更改新版本的设置时,对它进行版本控制会带来很多麻烦,但如果您更改它,旧版本将会中断。
  4. 通常,在运行时更改的任何内容都应该放在数据库中。任何敏感且很少改变的东西都应该进入配置文件,并且任何黑客应该在命令行上进行( - [no] enable-bug-287438-hack在你需要的时候非常方便。)

答案 5 :(得分:0)

我更喜欢简单的ini文件。以下是您可能会觉得有用的示例Setting class