【问题标题】:Best way to extract DataBase connection settings to external file in Java EE Maven project在 Java EE Maven 项目中将数据库连接设置提取到外部文件的最佳方法
【发布时间】:2016-01-08 16:09:33
【问题描述】:

在我的本地机器上,我正在 Tomcat7 上创建与本地 MySQL 数据库协作的 Java EE Maven 项目。

现在,我在 Java EE Maven 项目中直接在 DatabaseQueries.java 中硬编码了所有数据库连接设置,例如(用户、密码、主机、数据库名称……等),但我知道这是不对的,我想采用例如,将此设置从项目中移出到 db.properties 文件,因此当我在远程 Tomcat7 服务器上部署项目时,它将使用具有相应设置的不同 db.properties 文件或如果我在 GitHub 上共享项目,其他人将看不到我的数据库用户名和密码。

因此我有几个问题:

  1. 从 Maven 项目?

  2. Maven 项目是否已经内置了执行此操作的功能?

  3. 如何确定当我将项目导出为 *.WAR 文件时 它不会包含这个 db.properties 文件?

  4. 为此目的使用名称作为“db.properties”是否正确?

【问题讨论】:

标签: maven jakarta-ee properties-file


【解决方案1】:

例如,在您的项目中添加 4 个文件夹:

1.Your Project\src\main\resources\

    \local > db.properties
    \integration > db.properties
    \deploy > db.properties
    \Default > db.properties

2. in pom.xml add :


<properties>
    <param>Default</param>
</properties>

and

<build>
    <resources>
        <resource>
            <directory>src/main/resources/${param}</directory>           
        </resource>
    </resources>
</build> 

    if : mvn clean install   : classpath => db.properties(from Default)

    if : mvn clean install -Dparam=local : classpath => db.properties(from local)

     if : mvn clean install -Dparam=integration : classpath => db.properties(from integration)

     if : mvn clean install -Dparam=deploy : classpath => db.properties(from deploy)

比使用配置文件更可扩展,无需接触 pom

【讨论】:

  • 我在哪些情况下使用:本地、集成、部署和默认?
  • 能否请你给我一个例子 db.properties 文件显示的样子?
【解决方案2】:

在你的情况下只是本地和远程:

    local/db.properties
            user=aaaa
            password=aaaa
            host=127.0.0.0

    remote/db.properties
            user=rrrrr
            password=rrrrr
            host=1.2.3.4

【讨论】:

  • 谢谢!我用了你的解决方案。唯一满足我需求的东西我只需要这两个!
猜你喜欢
  • 2013-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-09
  • 2016-11-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多