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