Java Tomcat应用程序和全局变量存储在数据库中。用于维护服务器和应用程序的Manager应用程序

Java Tomcat应用程序和全局变量存储在数据库中。用于维护服务器和应用程序的Manager应用程序,java,tomcat,web-applications,Java,Tomcat,Web Applications,寻找关于设置Tomcat和应用程序读取应用程序和全局变量数据库的意见。我们正在开发一个应用程序,让开发者和网络技术人员配置网络应用程序和服务器。这个想法的产生是因为开发者不应该关心他们的应用程序在哪个服务器上,而不需要确保web.xml和context.xml对于每个环境都是正确的 我们希望将所有服务器、环境和变量保存在数据库中,我们的manager应用程序将允许开发人员轻松设置应用程序变量和全局tomcat变量。该应用程序还允许Jenkins获得部署和构建应用程序所需的PARM 有什么想法吗?

寻找关于设置Tomcat和应用程序读取应用程序和全局变量数据库的意见。我们正在开发一个应用程序,让开发者和网络技术人员配置网络应用程序和服务器。这个想法的产生是因为开发者不应该关心他们的应用程序在哪个服务器上,而不需要确保web.xml和context.xml对于每个环境都是正确的

我们希望将所有服务器、环境和变量保存在数据库中,我们的manager应用程序将允许开发人员轻松设置应用程序变量和全局tomcat变量。该应用程序还允许Jenkins获得部署和构建应用程序所需的PARM

有什么想法吗?有没有一种方法或共享软件可以做到这一点


谢谢

就我的观点而言,我认为这对于某些部署来说是一个非常好的主意。我曾经参与过一些项目,我们按照您的建议这样做:将一组“环境变量”(我使用引号是因为它们不是真正的sysEnv变量,而是数据库中的数据)存储在数据库中,然后对于每个部署环境,我们会让应用程序读取这些变量并相应地进行部署配置

我们实现这一点的另一种方法是实际使用系统环境变量。这对Java非常有用,因为您有一个通用的API来读取这些API,而不必关心您所使用的操作系统。如果要设置的此类变量的数量不是很大,则实现起来会更快:无需安装db,无需创建/更新用于存储所述变量的模式,只需编写特定于操作系统的脚本,在每个环境中配置这些变量即可。另一个优点是,通过这种方式,您可以在同一台机器上创建多个用户,每个用户都有一组不同的变量值,并且只需为某个用户部署应用程序,就可以让它为该组变量工作(有集成、预生产等用户)


后者的缺点是当你有大量的变量时。在这种情况下,设置一些数据库实例并为模式创建/更新和数据插入创建(一个通用)脚本可能比创建大型、特定于操作系统的脚本更简单。

谢谢Shivan。我们计划为应用程序使用一个初始化servlet来读取数据库。你是这样实现的吗?可能是web服务或直接数据库读取?实际上,我们已经有超过web应用程序使用此设置。对于web应用程序,我们通常使用上下文或会话侦听器(因此,每次新部署和/或每个分别访问应用程序的新用户都将重新读取变量)。我们还拥有命令行工具(如各种Java批处理),为此我们创建了一个通用的“SettingsReader”库,该库将从env变量中读取配置,但也可以拥有覆盖某些变量的配置文件。