0

我有一个项目将分开为:

  • a)业务层(包含所有核心 Java 类和一些配置(服务等))和
  • b)表示层(包含所有基于 Spring webflow 的 web 结构以及上面的所有配置文件。所以在开发过程中,我们有几个属性文件分布在java/main/src一个resource.properties.*包中,我们在 web 结构中还有其他属性在下面 WEB-INF/confWEB-INF/i18n(这是屏幕的标签消息)..所以我的问题如下:

    1. 将属性文件留 java/main/src在包中是正确的,以后将classes 在 webapp 中的文件夹下?
    2. 将所有属性文件放在一个地方的最佳方法是什么WEB-INF/configurations?还是将业务层的一些属性文件放在一个地方,将表示层的一些属性文件放在另一个地方?
    3. 以安装 webapp 的最佳方式拥有此属性的最佳方法是什么?在 JAR 文件中交付属性并将其包含在 WAR 或 EAR 中?这允许我们在不部署整个应用程序的情况下即时修改并包含在战争中......或者哪种方法是最好的或使用的方法来实现这一点?
4

2 回答 2

1

我发现将属性分为两类很有帮助:

  1. 用于方便更改应用程序外观和行为的属性
  2. 环境特定设置的属性(例如 DEV 与 PRODUCTION)

类别 #1 可以嵌入到您的 WAR 文件中,只要有意义。inWEB-INF/classes是一个很受欢迎的地方,但是把它们放在META-INFjar 文件中也可以很好地工作。选择你喜欢的标准并坚持下去是值得的。底线是这些文件在开发过程中被更改;它们在部署后不会更改,并且在系统发布时保持不变。

类别#2 应该始终与可部署的分开。理想情况下,特定于环境的属性应仅在它们发生更改时才部署。这实际上是他们所在的配置管理 (CM) 决策。开发人员需要提供这些配置文件的基本版本,CM 应该在将它们部署到特定环境(QA、PRE-PROD、PROD)时对其进行编辑。在强制委派职责的情况下(例如,在 SOX 应用的情况下),开发人员绝不应该接触或看到属性文件的生产版本。我见过很多情况,这些文件的不同版本(DEV/QA/PROD)由开发人员维护并保存在源代码控制中,这是不合适的。

于 2013-03-25T14:45:54.143 回答
0

我认为拥有一个单独的源文件夹“资源”并将所有属性文件保存在那里是件好事。这些还确保属性文件不会混淆源代码。

于 2013-03-25T14:34:00.827 回答