JavaEE解决方案配置最佳实践

Ama*_*icA 14 java jboss glassfish java-ee apache-tomee

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

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

我希望能有更好的方式,但不乐观.我们考虑/使用的一些选项,每个选项都有它的优点和缺点:

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

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

rip*_*234 0

用户一个简单的数据库表(部分、键、值)。如果需要,添加“版本”,然后将整个内容包装在一个简单的 ConfigurationService 类中,方法如下getInt(String section, String key)

工作量并不大,而且它使应用程序代码非常整洁,并且配置调整也非常容易。