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

12
我想知道.properties文件的用途和使用场景。我目前正在使用ANT开发动态Web应用程序,需要使用.properties文件并在build.xml文件中设置属性。请给我一些相关的想法。
问候, Jeya
4个回答

17

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

在各种Java应用程序中,属性文件通常用于存储配置或本地化数据等多种目的。

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

<property file="foo.properties"/>

那么所有的脚本都可以使用这些属性。


5

属性被用来将可配置的数据外部化,如果你把这些数据放在代码中,每次想要改变属性的值就必须重新构建代码。使用属性的主要优点是它们位于源代码之外,可以随时更改。要使用属性,请参阅java.util.Properties类。


3

属性文件可以让你将功能(build.xml执行的操作)与用于执行该功能的数据(属性)分开。

例如,项目中的不同开发人员可能有不同的项目根目录。构建过程需要知道哪个目录是根目录,然后基于该目录执行其功能。因此,您可以将此信息放入属性文件中,而不是为每个开发人员创建自定义的build.xml文件。


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.properties优先于build.xml。
网络领域中的具体示例:
- 在生产、测试和开发之间部署不同的IP地址。 - 设置一个标志,在调试信息打开和关闭之间进行编译。 - 设置一个标志,用于选择是部署已解压的war/ear文件还是打包版本。 - 选择是否运行冒烟测试、单元测试、集成测试、验收测试或全部测试。 - 在不同环境之间使用不同的密码。 - 是否创建并填充数据库或使用现有数据库。 - 根据部署到Tomcat、GlassFish、JBoss等,选择要打包的web.xml。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接