配置文件应该放在哪里?

4
我有一个如下结构的应用程序:
  • dao
  • domain
  • main
  • services
  • utils
我创建了一个类,从XML文件中读取应用程序配置。问题是应该将其放在哪里?
按照惯例,我会把它放在utilities中,但是utility类具有静态方法并且是无状态的,而这个类使用了Apache Commons XMLConfiguration的实例。我应该适应这些方法,使此实例仅限于此类中的方法范围吗?

你是在询问XML文件的位置还是加载和公开XML文件的类的位置? - cherouvim
Cherouvim,我在想根据应用程序的划分方式,加载XML的类应该放在哪里。这只是一个细节,但我想现在采用最佳实践并避免养成不良习惯。 - James P.
5个回答

3
我认为这些项是包,所以我会选择main包。
  • dao
  • domain
  • main 包含应用程序及其配置读取器
    • config
    • log
  • services
  • utils
为什么? 应用程序的配置,无论是 XML 还是基于 Spring 等应用程序框架,都是其主要功能的一部分。启动应用程序是应用程序的主要责任。所有业务功能,所有提供的闪亮特性都在域和服务层中实现。
您是正确的,utils 是关于静态或类似工具的全部内容。由于应用程序的配置非常重要,因此我不会将其声明为实用程序。实用程序是可以轻松替换为同类型的其他实用程序的东西(例如 StringUtil vs. StringUtils vs. IOUtils 等,它们都具有非常相似的功能)。

2
这取决于您使用的构建系统和应用程序类型,例如maven建议将配置文件放置在src/main/resources中。
在WAR文件中,您可以将它们放置在WEB-INF或WEB-INF/config中。
根据您的项目结构,我建议引入一个名为config或resources的文件夹,因为几乎每个人都会期望它们出现在那里。

2
如果你正在使用Spring框架,可以看看配置占位符。你可以使用一个简单的Java属性文件来设置你的配置属性,并把它放在类路径(或任何其他位置)。此外,你也可以创建自己的实现来使用不同的方式来存储你的配置值(如XML、数据库等)。

2
由于配置是一个横切面,它不仅仅映射到这些层之一。将配置文件(XML或属性文件)放置在类路径下,并通过Spring使用它来配置您的bean。
对于基于属性的配置数据,PropertyPlaceholderConfigurer 是一个不错的解决方案。

1

我建议你看看Spring。一开始可能会觉得有些过度,但你会爱上它的。


Spring已经被用于注入Service和DAO类的实例。如何使用它进行配置呢? - James P.
使用属性文件并将其包含在内。然后,您可以将所有属性作为变量可用,这些变量可以用于注入bean中。我自己以前没有这样做过,但几乎每个基于Spring的框架或应用程序都喜欢这样做。 - Daniel

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