加载属性配置文件

!!! note 目录

加载属性配置文件

一、使用 Properties 类加载属性配置文件

  1. Properties

    • Properties 是一个表示一组持久属性的类。属性列表中每个键及其对应值都是字符串。
    • 用途:用于存储和管理配置信息,例如数据库连接配置。
  2. 加载配置文件

    • 使用 Properties 类的 load(Reader reader) 方法,可以将配置文件的内容加载到 Properties 对象中。
    • 例:properties.load(new FileReader("config.properties"));
  3. 获取文件路径

    • 使用 Thread.currentThread().getContextClassLoader().getResource("path").getPath() 获取配置文件的绝对路径。
    • 例:String path = Thread.currentThread().getContextClassLoader().getResource("config.properties").getPath();
  4. 读取属性

    • 不知道键的情况下
      • 使用 Properties.propertyNames() 方法获取所有键。
      • 遍历键并使用 Properties.getProperty(String key) 获取对应的值。
    • 知道键的情况下
      • 直接使用 Properties.getProperty(String key) 获取相应的值。
      • 例:String value = properties.getProperty("key");

load()可以读取Reader、InputStream。

二、使用 ResourceBundle 类加载属性配置文件

  1. ResourceBundle

    • 用于从类路径下的属性文件中获取本地化的资源。
    • 常用于加载国际化资源文件。
  2. 加载配置文件

    • 通过 ResourceBundle.getBundle(String baseName) 方法加载指定基名的属性文件。
    • 例:ResourceBundle bundle = ResourceBundle.getBundle("config");
  3. 文件路径限制

    • ResourceBundle 只能加载类路径下的 .properties 文件,不能加载其他路径下的属性文件。
    • 指定基名时,不需要包含文件扩展名,例如 jdbc.properties 文件的基名为 jdbc
  4. 读取属性

    • 使用 ResourceBundle.getString(String key) 方法,通过键名获取对应的值。
    • 例:String value = bundle.getString("key");
  5. 注意事项

    • ResourceBundle 适用于从类路径下的资源文件中读取属性信息,常用于国际化资源文件的加载。
    • 使用 ResourceBundle 时,属性文件应放置在类路径下,并且命名遵循约定(不带扩展名)。