在 Java EE Maven 项目中将数据库连接设置提取到外部文件的最佳方法

Posted

技术标签:

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

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

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

因此我有几个问题:

    从 Maven 项目?

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

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

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

【问题讨论】:

相关:***.com/q/2161054 【参考方案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

【讨论】:

谢谢!我用了你的解决方案。唯一满足我需求的东西我只需要这两个!

以上是关于在 Java EE Maven 项目中将数据库连接设置提取到外部文件的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

maven搭建java ee项目

Java EE 学习:IDEA + maven + spring 搭建 web- 用户管理

Java EE 学习:IDEA + maven + spring 搭建 web- 博客文章管理

Java EE 学习:IDEA + maven 搭建 web

如何在 Intellij 中将“java”文件夹创建到 maven webapp 项目中?

一种使用 Maven 构建工具在 Java 项目中将 plsql 部署到 Oracle 的方法