配置应该放在哪里?

时间:2010-05-16 07:43:36

标签: java configuration domain-driven-design apache-commons three-tier

我的应用程序结构如下:

  • 服务
  • utils的

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

通过反射,我已将它放在实用程序中,但实用程序类具有静态方法并且是无状态的,而此类使用Apache Commons XMLConfiguration的实例。我应该只调整方法,以便此实例仅限于此类中方法的范围吗?

5 个答案:

答案 0 :(得分:3)

我认为这些项目是包裹,因此我选择主要包裹。

  • dao
  • main 包含应用程序及其配置阅读器
    • 配置
    • 日志
  • 服务
  • utils的

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

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

答案 1 :(得分:2)

这取决于您使用的构建系统和应用程序类型。 maven建议将配置文件放在src/main/resources

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

根据你的项目结构,我建议引入一个文件夹配置或资源,因为几乎每个人都会期待它们。

答案 2 :(得分:2)

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

答案 3 :(得分:2)

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

对于基于属性的配置数据,PropertyPlaceholderConfigurer是一个很好的解决方案。

答案 4 :(得分:1)

我劝你看一下Spring。一开始你可能看起来有点矫枉过正,但你会爱上它。