如何隐藏和抽象Java属性文件?

时间:2013-03-25 20:37:29

标签: java maven properties

我的应用程序使用许多属性文件来存储密码,URL和其他应用程序数据。我想从源代码中抽象出这些文件的细节。这样做的最佳做法是什么?

我正在考虑在Maven中创建一个插件,根据部署应用程序的环境,将从数据库中提取一组属性,但这似乎要做很多工作。欢迎大家提出意见。主要目标是从代码库中删除敏感数据。

谢谢,

1 个答案:

答案 0 :(得分:1)

我使用Maven filtering和个人资料来执行此操作。在我的属性文件中,我只使用database.password=${database.password}这样的占位符,然后在我的本地maven设置中创建一个配置文件,其中database.password属性设置类似于

<profiles>
    <profile>
      <id>development</id>
      <properties>
        <database.password>MySuperSecretPassword</database.password>
      </properties>
    </profile>
<profiles>

所以当我运行mvn install -P development时,它会使用我的密码交换占位符。 你可以找到更多detailed example here,虽然看起来他把他的个人资料保存在pom.xml而不是他的本地maven设置文件中(可能为了简单起见)