一尘不染

JavaEE解决方案配置最佳实践

java

我们构建3层企业解决方案,通常由几个webapp和ejbjar模块组成,这些模块都与​​数据库通信并具有多个外部集成点。

每个模块通常需要自己的配置,这些配置可以在解决方案的生命周期内进行更改。部署它成为一场噩梦,因为现在我们必须记住18个属性文件以进行复制和配置,还需要设置数据源,队列,内存需求等。

我希望但不能乐观地找到更好的方法。我们考虑/使用过的一些选项,各有其优缺点:

  1. 使用多个Maven项目并进行持续集成(例如hudson或jenkins)来构建配置jar,其中包含每个环境(dev,qa,prod)的所有属性文件,然后将所有内容捆绑为EAR。但是,当需要时,在生产中就无法轻易更改事物。
  2. 将大多数设置放在数据库中,并有一个简单的屏幕可以对其进行修改。在内部,我们可以有一个通用的配置服务EJB,它可以读取和修改值。每个模块可以具有一个自定义扩展版本,该版本具有特定的getter和setter。
  3. 版本控制所有属性文件,然后在生产中将其检出,并在进行更改后将其检入生产分支。

使用所有这些,您仍然需要以容器特定的方式配置数据源和队列等:(


阅读 244

收藏
2020-12-03

共1个答案

一尘不染

用户使用一个简单的数据库表(Section,Key,Value)。如果需要,请添加“版本”,然后将整个内容包装在一个简单的ConfigurationService类中,该类具有以下方法getInt(String section, String key)

不需要很多工作,这使得应用程序代码非常整洁,并且对配置进行调整非常容易。

2020-12-03