使用Property文件

时间:2012-03-26 12:21:39

标签: java properties

我正在为数据库连接创建属性文件。我已经给出了文件的路径,并且我使用该函数存储属性:

 public void setProperty(String key, String value) {
    properties.setProperty(key, value);
}

我设置了以下属性:

"url","jdbc:mysql://localhost:3306/";"dbname","example";"user", "postgres";"Pass","123";

我的问题是,当我在另一个系统中使用我的应用程序时,这个属性文件是如何有用的(实际上我已经浏览了“java中的属性文件”教程,但我无法理解它们是如何被使用的)。

在新系统中,用户名和密码会有所不同,那么这个文件怎么会有用呢?

2 个答案:

答案 0 :(得分:4)

  

在新系统中,用户名和密码会有所不同,那么这个文件怎么会有用呢?

这很有用正是因为文件 在不同的系统上可能不同。通过将特定于系统的详细信息放入可在不同系统上更改的文件中,您可以避免为每个不同的系统编写不同的Java代码。

  

但我怎么知道其他用户的用户名和密码

在您不知道的情况下,您有许多替代方案,例如:

  • 告诉用户使用文本编辑器
  • 编辑属性文件
  • 编写应用程序安装程序以询问用户名和密码,然后在安装时将其插入属性文件中,或
  • 提供允许用户输入或更新属性的配置工具或界面。

顺便说一下,您似乎发明了自定义属性文件格式。你不需要这样做。 java.util.Properties类提供了两种用于读取和写入的标准格式和方法。

答案 1 :(得分:0)

至少据我了解,属性文件的想法是在jar文件的外部。我将描述我要走的路 - 基本思路是在打包应用程序时使用相对路径并始终使用相同的结构:

  • 使用部署工具创建包,易于部署。 为此我使用Maven,我使用自定义程序集描述符maven-assembly-plugin
  • 这样的属性文件如数据库配置,在项目结构中位于 / src / resources / config 下(例如)
  • 在汇编描述符(创建一个zip文件)中, / src / resources / config 中的所有文件都被移动到目录配置中zip的根目录 - 所以在 / config中在zip文件中。应使用maven-jar-plugin配置或maven-dependency-plugin将 / config 添加到类路径中。
  • 主jar位于zip的根级别,所有其他依赖项位于/ lib文件夹中(使用maven-dependency-plugin)

这样您就可以发送一个zip文件,其内部结构如下:

/

/config

/bin

/lib

<main jar file with manifest - the manifest contains all the classpath info - this info is automatically generated by the maven plugins>

当凭据更改时,您所要做的就是编辑属性文件。另一个问题是,如果这是安全的。