繁体   English   中英

在另一个.properties文件中使用.properties文件密钥

[英]Use a .properties file keys in another .properties file

我的Java项目中有一个database.properties文件,其中包含主机名,用户名和数据库密码。 我在代码中使用它们来连接数据库。 事实是,我使用log4j,并在log4j.properties文件中必须设置数据库主机名,用户名和密码。 这些属性是必需的,以便log4j可以在数据库中记录消息。

在我的项目中,我有几个使用log4j的模块,因此我必须在多个文件中设置数据库属性。

有没有办法使用log4j.properties文件中database.properties文件中的密钥?

您可以使用PropertyConfigurator ,加载两个属性文件,并用database.properties内容替换log4j.properties文件的某些属性。

然后,将其传递给配置器。

    Properties dbProps = new Properties();
    FileInputStream in = new FileInputStream("database.properties");
    dbProps.load(in);
    in.close();

    Properties log4jProperties= new Properties();
    FileInputStream in2 = new FileInputStream("log4j.properties");
    log4jProperties.load(in2);
    in2.close();

    // replace things
    log4jProperties.setProperty("log4j.appender.DB.URL", dbProps.getProperty("db.url"));
    log4jProperties.setProperty("log4j.appender.DB.user", dbProps.getProperty("db.usr"));
    log4jProperties.setProperty("log4j.appender.DB.password", dbProps.getProperty("db.pwd"));

    // configure Log4j
    PropertyConfigurator.configure(log4jProperties);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM