【问题标题】:Can I have a modifiable Java file outside in a .war file? (but still connected to the .war project)我可以在 .war 文件之外有一个可修改的 Java 文件吗? (但仍连接到 .war 项目)
【发布时间】:2014-08-11 00:44:26
【问题描述】:

问候stackoverflowers,

我在 Eclipse 中有一个 Java 项目,除了 RESTful WebServices 读取输入,一些编程逻辑使用给定的输入和来自连接到数据库的数据(使用jdbcdriver)来生成一些结果。然后将项目导出到.war 文件并部署在Apache Tomcat Server 中。到目前为止一切顺利。

我的问题是我能否将包含与数据库的连接的 Java 文件分开(位于.war 之外)以便于修改?

想象一下我有 4 个不同的数据库(测试数据库、开发数据库、生产数据库等)...我是否需要创建 4 个不同的.warfiles 具有不同的连接参数,或者有一种方法可以在外部使用它.war 项目并根据需要更改此连接参数? (但仍可通过.war 连接和读取)。

PS:抱歉,如果我犯了任何拼写错误,或者我违反了 StackOverflow 行为。如果我这样做了,请随时告诉我,并提前感谢所有人。

【问题讨论】:

    标签: java database eclipse jdbc war


    【解决方案1】:

    您的连接信息最好作为在您部署的应用服务器上配置的 JNDI 连接池进行处理。

    Eclipse 是一个 IDE,其中可能运行着 Tomcat 或 JBOSS 等应用服务器。您需要了解如何为您的应用服务器设置 JNDI 连接池。

    【讨论】:

      【解决方案2】:

      使用 O/S 环境变量 (envvars) 来存储特定于机器的详细信息。

      如果你使用 Spring,你可以使用 Spring 的 PropertyPlaceHolder,然后在 spring 配置文件中直接使用这些 envvars。

      【讨论】:

      • 我不推荐这种方法。
      • @duffymo 不是最有帮助的评论。你知道 AWS 和 Heroku 使用这种方法对吗?
      【解决方案3】:

      您可以有 4 个不同的属性文件来指向不同的数据库。 并在 JVM 启动期间添加系统属性以获取您想要的环境。

      【讨论】:

        猜你喜欢
        • 2016-11-17
        • 2013-08-30
        • 1970-01-01
        • 2013-01-12
        • 2014-11-13
        • 1970-01-01
        • 2010-11-10
        • 2016-02-13
        • 2023-04-07
        相关资源
        最近更新 更多