Java 读取 properties 配置文件的几种方式

开发 前端
如果你使用 Spring 框架,你可以使用PropertyPlaceholderConfigurer 类来加载和解析属性文件中的配置。这对于在 Spring 应用程序中管理配置非常有用。

在 Java 中,有几种方式可以读取 properties 配置文件。除了之前提到的使用 java.util.Properties 类,还有其他一些方式可以实现相同的目标。以下是几种常见的读取 properties 配置文件的方式:

1.使用 Properties 类

这是最常见的方式,使用 java.util.Properties 类来读取和操作 properties 配置文件;你可以使用 java.util.Properties 类来读取和操作 properties 配置文件。Properties 类可以用于加载和保存键值对形式的配置信息。以下是一个简单的示例,演示如何读取 properties 配置文件:

假设你有一个 config.properties 文件,内容如下:

propertiesCopy code
# config.properties
database.url=jdbc:mysql://localhost:3306/mydb
database.username=myuser
database.password=mypassword

下面是使用 java.util.Properties 类读取这个配置文件的示例代码:

javaCopy code
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

public class PropertiesReader {

    public static void main(String[] args) {
        Properties properties = new Properties();

        try {
            // 从文件加载配置
            FileInputStream fileInputStream = new FileInputStream("path/to/config.properties");
            properties.load(fileInputStream);
            fileInputStream.close();

            // 获取配置值
            String dbUrl = properties.getProperty("database.url");
            String dbUsername = properties.getProperty("database.username");
            String dbPassword = properties.getProperty("database.password");

            System.out.println("Database URL: " + dbUrl);
            System.out.println("Database Username: " + dbUsername);
            System.out.println("Database Password: " + dbPassword);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

请将 path/to/config.properties 替换为实际的配置文件路径。

在这个示例中,我们使用 FileInputStream 来加载 properties 配置文件,然后使用 load 方法将其内容加载到 Properties 对象中。接着,我们可以使用 getProperty 方法来获取配置值。

请注意,使用 Properties 类还可以用于写入和保存 properties 配置文件。如果你需要修改配置并将其保存回文件中,可以使用 setProperty 方法和 store 方法。

总之,java.util.Properties 类提供了一种方便的方式来读取和操作 properties 配置文件中的键值对信息。

2.使用 ResourceBundle 类

ResourceBundle 是 Java 标准库中的另一种用于读取属性文件的方式,它更多地用于本地化和国际化。这种方式适用于加载位于类路径中的属性文件。

javaCopy code
import java.util.ResourceBundle;

public class ResourceBundleExample {

    public static void main(String[] args) {
        ResourceBundle bundle = ResourceBundle.getBundle("config"); // 无需文件扩展名
        String dbUrl = bundle.getString("database.url");
        String dbUsername = bundle.getString("database.username");
        String dbPassword = bundle.getString("database.password");

        System.out.println("Database URL: " + dbUrl);
        System.out.println("Database Username: " + dbUsername);
        System.out.println("Database Password: " + dbPassword);
    }
}

3.使用 Spring 的PropertyPlaceholderConfigurer

如果你使用 Spring 框架,你可以使用PropertyPlaceholderConfigurer 类来加载和解析属性文件中的配置。这对于在 Spring 应用程序中管理配置非常有用。

xmlCopy code
<!-- 在 Spring 配置文件中配置 PropertyPlaceholderConfigurer -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="classpath:config.properties" />
</bean>

然后,在 Spring 的 bean 中可以直接使用占位符 ${} 来引用属性值。

xmlCopy code
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="url" value="${database.url}" />
    <property name="username" value="${database.username}" />
    <property name="password" value="${database.password}" />
</bean>

4.使用 Apache Commons Configuration 库

Apache Commons Configuration 是一个用于读取各种配置格式(包括 properties 文件)的库,提供了更灵活和功能丰富的配置管理。

javaCopy code
import org.apache.commons.configuration2.Configuration;
import org.apache.commons.configuration2.builder.fluent.Configurations;

public class CommonsConfigurationExample {

    public static void main(String[] args) {
        Configurations configs = new Configurations();
        try {
            Configuration config = configs.properties(new File("path/to/config.properties"));

            String dbUrl = config.getString("database.url");
            String dbUsername = config.getString("database.username");
            String dbPassword = config.getString("database.password");

            System.out.println("Database URL: " + dbUrl);
            System.out.println("Database Username: " + dbUsername);
            System.out.println("Database Password: " + dbPassword);
        } catch (ConfigurationException e) {
            e.printStackTrace();
        }
    }
}

以上是一些常见的读取 properties 配置文件的方式。根据你的项目需求和技术栈,选择最适合你的方法进行配置文件读取。

责任编辑:武晓燕 来源: 今日头条
相关推荐

2022-08-17 07:06:14

SpringBoot配置@Value

2009-06-05 10:35:02

struts.prop配置文件

2010-08-03 09:20:33

Flex读取XML配置

2009-06-05 10:52:45

struts2深入详解配置文件

2013-07-30 11:30:42

Windows PhoWindows Pho

2009-08-13 09:16:57

C#读取配置文件

2009-08-13 09:58:55

C#读取配置文件

2011-07-22 16:25:42

J2SE

2023-11-01 08:30:20

SpringYAML

2010-08-02 16:58:08

Flex配置文件

2011-06-14 16:07:13

Qt QSettings类

2022-09-15 16:48:30

MySQL数据库测试

2009-07-10 10:37:11

WINAPI

2011-08-29 16:48:50

Lua配置文件C++

2022-12-09 18:06:21

2011-02-25 16:39:34

proftpd配置文件

2011-03-25 17:13:37

Nagios配置文件

2009-02-01 14:07:01

J2EEXMLXML配置文件

2016-09-18 16:58:09

JavaProperties

2022-03-23 07:31:34

SpringBoot加载配置
点赞
收藏

51CTO技术栈公众号