gpt4 book ai didi

java - 在 web.xml 中存储变量的目的?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:52:01 25 4
gpt4 key购买 nike

网络上关于存储可能会根据环境/其他条件而变化的变量的很多建议是将它们放在 web.xml 中,但是 web.xml 不是在 war 文件中吗?即使你找到爆炸 war 并改变它,如果你更新 war 文件它不会被覆盖吗?或者 webcontainer 是否提供任何方法来配置 web.xml 而无需修改 war 文件?

最佳答案

根据我的经验,web.xml 变量的用途非常有限 - 唯一的优势是它是寻找硬编码“配置”的标准位置。

有几种常见的解决方案可以更明智地配置网络应用程序,但没有一种是标准的:

  • 使用系统属性(这通常涉及摆弄启动脚本,并且很难全面了解您的整个配置)
  • 使用环境变量(与系统属性相同的缺点)
  • 从预定义位置读取配置文件;通常使用 getResourceAsStream 从类路径中获取(IIRC 通常意味着将配置文件放在 Tomcat 的 lib 目录中)

您也可以使用 JNDI,它的缺点是设置和读取都相当笨重(如果您使用的是 vanilla Java,无论如何 - 例如 Spring 对从 JNDI 读取有相当好的支持)。但是,JNDI 相当不错,因为它是针对每个应用程序的,而不是进程全局设置。如果您需要在同一台服务器上运行同一应用程序的多个实例,JNDI 几乎是唯一的选择(尽管您可以使用它来在某处指出一个配置文件,这使得事情更容易处理)。

这可能与您的兴趣相关:How can I store Java EE configuration parameters outside of an EAR or WAR?

关于java - 在 web.xml 中存储变量的目的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17110775/

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