【问题标题】:Set empty string as the value of a key in properties file将空字符串设置为属性文件中键的值
【发布时间】:2014-11-06 02:04:21
【问题描述】:
jdbc.password=

如何在我的 application.properties 文件中为 jdbc.password 键分配一个空字符串?

我知道我可以按如下方式以编程方式执行此操作,但我想在属性文件中进行设置。

Properties props = new Properties();
props.put("password", "");

【问题讨论】:

    标签: java security web-applications properties passwords


    【解决方案1】:

    只需在 RHS 上将值留空即可:

    password=
    

    示例代码:

    import java.io.*;
    import java.util.*;
    
    class Test{
        public static void main(String [] args) throws Exception {
            Properties props = new Properties();
            props.load(new StringReader("password="));
            System.out.println(props.size()); // 1
            System.out.println(props.getProperty("password").length()); // 0
        }
    }
    

    【讨论】:

    • 虽然您提供的测试似乎有效,但我的问题背后的原因是为mysql数据库连接设置空密码。当我这样做时,我的 jdbc 连接失败并给我以下异常org.hibernate.exception.GenericJDBCException: Could not open connection caused by org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Access denied for user 'root'@'localhost' (using password: YES))
    • @Susie:这听起来像是 JDBC 驱动程序获取属性的方式。我已经回答了您提出的问题 - 接下来要做的是查阅相关文档以了解如何使用属性。
    • 另外请注意,如果我将 mysql 密码设置为某个字符串并相应地更新属性文件,我的应用程序可以正常工作。
    • @Susie:我建议您提出一个 问题,提供更多详细信息,包括您用于配置 JDBC 连接的代码。
    • 我已经按照你的建议在这里发布了另一个问题:stackoverflow.com/questions/25811182/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-25
    • 2011-07-06
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多