在 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 项目中将数据库连接设置提取到外部文件的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章
Java EE 学习:IDEA + maven + spring 搭建 web- 用户管理
Java EE 学习:IDEA + maven + spring 搭建 web- 博客文章管理
Java EE 学习:IDEA + maven 搭建 web