JavaEE 解决方案配置最佳实践
我们构建 3 层企业解决方案,通常由多个 webapp 和 ejbjar 模块组成,这些模块都与数据库通信,并具有多个外部集成点。
每个模块通常需要自己的配置,这些配置可以在解决方案的生命周期内发生变化。部署它成为一场噩梦,因为现在我们有18个属性文件,必须记住这些文件才能复制并配置设置数据源,队列,内存要求等。
我很有希望,但并不乐观,认为会有更好的方法。我们考虑/使用过的一些选项,每个选项都有其优点和缺点:
- 使用多个 maven 项目和持续集成(例如 hudson 或 jenkins)来构建一个配置 jar,其中包含每个环境(dev、qa、prod)的所有属性文件,然后将所有内容捆绑为 EAR。但是,在需要时,在生产中不能轻易改变事情。
- 将大部分设置放在数据库中,并有一个简单的屏幕来修改它。在内部,我们可以有一个通用配置服务 EJB,它可以读取和修改这些值。每个模块都可以有一个自定义扩展版本,其中包含特定的 getter 和 setter。
- 然后,对所有属性文件进行版本控制,然后在生产环境中将其签出,并在进行更改后将其签入生产分支。
有了所有这些,您仍然需要以特定于容器的方式配置数据源和队列等:(