我有一个结构如下的应用程序:

  • 领域
  • 主要的
  • 服务
  • 实用程序

我创建了一个从 XML 文件读取应用程序配置的类。问题是应该放在哪里?

我本能地把它放在实用程序中,但实用程序类具有静态方法并且是无状态的,而此类使用 Apache Commons XMLConfiguration 的实例。我是否应该调整这些方法,以便将该实例限制在此类中的方法的范围内?

有帮助吗?

解决方案

我假设这些物品是包裹,所以我会选择 主要的 包裹。

  • 领域
  • 主要的 包含应用程序及其配置读取器
    • 配置
    • 日志
  • 服务
  • 实用程序

为什么? 应用程序的配置,无论是否采用 XML 格式,也无论是否基于 Spring 等应用程序框架,都是其主要功能的一部分。启动应用程序是应用程序的主要职责。它提供的所有业务功能、所有闪亮特性都在域和服务层中实现。

你是对的,utils 都是关于静态或类似工具的。由于应用程序的配置非常重要,因此我不会将其声明为实用程序。实用程序是可以轻松地被相同类型的另一个实用程序替换的东西(例如 StringUtilStringUtilsIOUtils ETC。它们都有非常相似的功能)

其他提示

这取决于您使用的构建系统和应用程序类型,例如maven 会建议将配置文件放在 src/主/资源

在 WAR 文件中,您可以将它们放在 WEB-INF 或 WEB-INF/config 中

根据您的项目结构,我建议引入文件夹配置或资源,因为几乎每个人都期望它们在那里。

如果您正在使用 Spring,请查看 配置占位符. 。您可以使用一个简单的 java 属性文件作为配置属性,并将其放置在类路径(或任何其他位置)上。您还可以创建自己的实现,以使用不同的形式来保存您的配置值(XML、数据库等)。

由于配置是一个横切方面,因此它并不专门映射到这些层之一。将配置文件(XML 或属性)放入类路径中,并通过 Spring 使用它来配置您的 bean。

对于基于属性的配置数据 属性占位符配置器 是一个很好的解决方案。

我强烈建议你看看 Spring。一开始对你来说可能有点大材小用,但你会喜欢它的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top