-
27-09-2019 - |
题
我有一个结构如下的应用程序:
- 道
- 领域
- 主要的
- 服务
- 实用程序
我创建了一个从 XML 文件读取应用程序配置的类。问题是应该放在哪里?
我本能地把它放在实用程序中,但实用程序类具有静态方法并且是无状态的,而此类使用 Apache Commons XMLConfiguration 的实例。我是否应该调整这些方法,以便将该实例限制在此类中的方法的范围内?
解决方案
我假设这些物品是包裹,所以我会选择 主要的 包裹。
- 道
- 领域
- 主要的 包含应用程序及其配置读取器
- 配置
- 日志
- 服务
- 实用程序
为什么? 应用程序的配置,无论是否采用 XML 格式,也无论是否基于 Spring 等应用程序框架,都是其主要功能的一部分。启动应用程序是应用程序的主要职责。它提供的所有业务功能、所有闪亮特性都在域和服务层中实现。
你是对的,utils 都是关于静态或类似工具的。由于应用程序的配置非常重要,因此我不会将其声明为实用程序。实用程序是可以轻松地被相同类型的另一个实用程序替换的东西(例如 StringUtil
与 StringUtils
与 IOUtils
ETC。它们都有非常相似的功能)
其他提示
这取决于您使用的构建系统和应用程序类型,例如maven 会建议将配置文件放在 src/主/资源
在 WAR 文件中,您可以将它们放在 WEB-INF 或 WEB-INF/config 中
根据您的项目结构,我建议引入文件夹配置或资源,因为几乎每个人都期望它们在那里。
如果您正在使用 Spring,请查看 配置占位符. 。您可以使用一个简单的 java 属性文件作为配置属性,并将其放置在类路径(或任何其他位置)上。您还可以创建自己的实现,以使用不同的形式来保存您的配置值(XML、数据库等)。
由于配置是一个横切方面,因此它并不专门映射到这些层之一。将配置文件(XML 或属性)放入类路径中,并通过 Spring 使用它来配置您的 bean。
对于基于属性的配置数据 属性占位符配置器 是一个很好的解决方案。
我强烈建议你看看 Spring。一开始对你来说可能有点大材小用,但你会喜欢它的。