什么是属性文件?它包含什么?

时间:2009-09-02 09:11:42

标签: java

我想知道.properties文件的用途和使用位置?目前我正在使用ANT进行动态Web应用程序,我必须使用.properties文件,并且必须在build.xml文件中设置属性。所以请提出有关此内容的想法

此致 Jeya

4 个答案:

答案 0 :(得分:15)

.properties文件是一个简单的键值对集合,可以由java.util.Properties类进行解析。

属性文件广泛用于各种Java应用程序中,通常用于存储配置或本地化数据。

ANT properties是特定于ANT的概念,与属性文件不同,但可以从这样的文件中读取ANT属性,通常是为了具有存储经常使用和更改的配置数据的中心点。然后你可以在不同的ANT脚本中使用这样的一行:

<property file="foo.properties"/>

然后所有脚本都可以使用这些属性。

答案 1 :(得分:5)

属性用于外部化可配置的数据,如果将数据放入代码中,则每次要更改属性值时都必须构建代码。 属性的主要优点是它们不在源代码中,您可以随时更改它们。 要使用属性,请参阅java.util.Properties class。

答案 2 :(得分:3)

属性文件允许您将函数(build.xml所做的)与用于执行该函数的数据(属性)分开。

例如,项目中的不同开发人员可能具有不同的项目根目录。构建需要知道哪个目录是根目录,之后它执行的功能将基于该目录。因此,不是每个开发人员都有自定义build.xml,而是将此信息放在属性文件中。

答案 3 :(得分:3)

鉴于您的Ant文件包含类似

的内容
<property file="build.properties"/>
<property name="prop1" value="value1"/>

如果build.properties包含一行

prop1=valueFromPropertyFile

然后对prop1的所有引用都会给你valueFromPropertyFile。

最佳实践是在build.xml中设置所有属性,并且build.properties存在是可选的,以覆盖不同环境的特定设置。也可以在命令行上使用以下命令覆盖这些属性:

ant -Dprop1=valueFromCommandLine

命令行优先于build.properties,它优先于build.xml中的任何内容。

网络域中的具体示例:

  • 要在生产,测试和开发之间部署的不同IP地址。
  • 设置一个标志,使用关闭和打开调试信息进行编译
  • 设置是否部署爆炸的战争/耳朵或打包版本的标志
  • 选择是否运行烟雾测试,单元测试,集成测试,验收测试或所有内容
  • 环境之间的不同密码
  • 是创建和填充数据库还是使用现有数据库
  • 要包装的web.xml取决于部署到Tomcat,GlassFish,JBoss等