gpt4 book ai didi

java - 如何根据服务器/环境动态加载服务器配置?

转载 作者:行者123 更新时间:2023-11-30 11:16:58 25 4
gpt4 key购买 nike

目前,我设置了 maven 配置文件,以便能够为不同的环境(开发、演示、暂存、生产......)部署我的项目,并且它工作得非常好。但问题是,对于我拥有的每个模块(Web 应用程序),我需要复制/粘贴此配置文件(它们都是属性文件)。当我需要更改环境/服务器配置时(例如,当端口号更改时,我需要重新部署所有 EAR 文件),这将是一项开销。

我的问题是,是否有更通用的解决方案来防止这种冗余方法?例如在 weblogic 中设置我的属性文件(或任何其他配置文件)?我想出了一个小模块来保存配置并通过 @Remote (EJB) 调用它们,但是根据我组织的应用程序关系,它有很多其他缺点。

所以对我来说最好的方法是能够在 weblogic 中设置一些配置,并在应用程序运行时动态访问它们,然后据此做出决定。

最佳答案

我想出了一个替代解决方案,我认为它更适合我和我的组织。

我将有一个位于客户端(开发人员)和系统之间的 JAR。这样 JAR 将从 .properties 文件(或任何文件)中读取,该文件被定义为服务器内部的环境变量(每个服务器将采用自己的设置)。然后在 JAR 中,我读取文件并将返回请求的值。这将使开发人员只专注于他们的代码,他们可以从 JAR 调用 getCurrentServer()getServer(XXX)(考虑到适当的异常处理很重要)。

应更新和重新部署现有模块。这种实现的唯一缺点是如果我更改了 .properties 文件,那么我需要重新启动服务器,因为文件加载机制将只有一次(实现单例模式)以获得更好的性能。无论如何,我认为这没什么大不了的,因为该文件可能很少更改(最多一年一次或两年一次),因此值得重新启动服务器(或者我可以随时加载文件客户端请求不需要重新启动服务器 - 但它会对性能产生不良影响 -)。

- 更新我实现了另一种方法来访问 JAR 的私有(private)方法并调用 loadProperties() 方法。通过这样做,我可以在不重新启动服务器的情况下手动重新加载属性。

关于java - 如何根据服务器/环境动态加载服务器配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24620958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com