您如何在Java Webapps中管理嵌入式配置文件和库?

wds:

我目前正在开发一个j2ee项目,该项目已经处于测试阶段。现在,我们只是在解决部署过程中的一些问题。具体来说,战争中嵌入了许多文件(一些xml文件和.properties),这些文件需要部署不同的版本,具体取决于您是处于开发,测试还是生产环境中。日志级别,连接池等内容。

因此,我想知道开发人员在这里如何构建其部署Web应用程序的流程。您是否将尽可能多的配置卸载到应用程序服务器?在部署之前,您是否以编程方式替换了设置文件?在构建过程中选择一个版本?手动编辑战争?

另外,通过应用程序服务器的静态库提供依赖关系还需要走多远,您自己又投入了多少?所有这些只是为了了解当前的通用(或最佳)做法。

条例草案

我在一个单独的服务器团队为我们的应用程序执行质量检查和生产服务器配置的环境中工作。每个应用程序通常部署在质量检查中的两台服务器和生产环境中的三台服务器上。我的开发团队发现,最好通过在战争(或战争)中放置尽可能多的配置来最小化服务器上​​所需的配置量。这使服务器配置更加容易,并且最大程度地减少了服务器团队错误配置服务器的机会。

我们没有特定于计算机的配置,但确实具有特定于环境的配置(Dev,QA和Production)。我们有存储在war文件中的配置文件,这些文件由环境命名(例如dev.properties,qa.properties,prod.properties)。我们在服务器VM的java命令行上放置了-D属性以指定环境(例如java -Dapp.env = prod ...)。应用程序可以查找app.env系统属性,并使用它来确定要使用的属性文件的名称。

我想如果您的机器专用属性数量很少,那么也可以将它们指定为-D属性。Commons Configuration提供了一种将属性文件与系统属性组合在一起的简便方法。

我们在服务器上配置连接池。我们为每个环境命名连接池,并简单地将分配给每个环境的服务器指向相应的数据库。该应用程序仅需知道一个连接池名称。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

您如何在Java中更改CLASSPATH?

您如何在Java中“清空” StringWriter?

如何在嵌入式Jetty中配置ErrorPageErrorHandler?

如何释放数据库文件?(NHibernate和嵌入式Firebird数据库)

您如何在Clojure中引用原始Java类型?

您如何在Java中从超类调用子类方法?

您如何在Java中取消转义URL?

您如何在Java中定义常量类?

您如何在Java类注释中设置作者?

您如何在Java中调用泛型类型的方法?

您如何在Java中实现Haskell的IO类型?

您如何在JAVA中称这种排序?

您將如何在嵌入式系統中返回錯誤代碼?

如何从Xcode中的“框架,库和嵌入式内容”中删除空白行

如何使XML文件成为vNext(ASP.NET 5)类库中的嵌入式资源?

如何在您的网站上管理您的jQuery库?

如何在Digital Ocean的源代码管理中包含nginx和gunicorn配置文件?

使用Java在Excel中读取嵌入式pdf文件

如何使用嵌入式jar文件中可用的功能?

如何访问网页中的嵌入式pdf文件

您如何使用Java库?

如何在iOS的嵌入式专用框架和应用程序中使用静态库

如何在Kotlin中管理单元测试资源,例如启动/停止数据库连接或嵌入式Elasticsearch服务器?

如何在嵌入式tomcat中配置AJP连接器?

安全警报:您的应用程序包含嵌入式私钥或密钥库文件

您如何在Raku中锁定文件?

如何在C ++中嵌入Chromium嵌入式框架

如何在嵌入式 Jetty 上配置 StdErrLog

Java嵌入式数据库(java db / derby)连接管理