Java放在resource下的文件生效,放在properties下不生效

在Java开发中,我们经常需要使用配置文件来存储一些常量或者配置信息。常见的配置文件有.properties和.xml文件。在Spring Boot项目中,通常将配置文件放在resource目录下,但有时在resource目录下的文件生效了,而放在properties目录下的文件却不生效。本文将介绍如何解决这个问题。

整体流程

下面是解决这个问题的整体流程:

步骤 操作
1 创建.properties或.xml配置文件
2 在代码中加载配置文件
3 使用配置文件中的参数

接下来,我们将详细介绍每个步骤需要做什么,并提供相应的代码示例。

步骤一:创建配置文件

首先,我们需要在resource目录下创建一个.properties或.xml配置文件。这里以.properties文件为例,创建一个名为config.properties的文件。在该文件中,我们可以定义一些键值对,用于存储配置信息。

# config.properties

username=admin
password=123456

步骤二:加载配置文件

在代码中加载配置文件是使用Java的Properties类来实现的。Properties类是Java中用于操作.properties文件的工具类,它提供了加载文件、读取属性值等方法。

首先,我们需要创建一个Properties对象,并加载配置文件。加载配置文件的代码如下所示:

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class ConfigReader {
    private static Properties properties;

    static {
        properties = new Properties();
        try {
            // 加载配置文件
            InputStream inputStream = ConfigReader.class.getResourceAsStream("/config.properties");
            properties.load(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,我们通过ConfigReader.class.getResourceAsStream("/config.properties")方法来加载配置文件。getResourceAsStream方法可以根据文件的相对路径从类路径中获取资源流。

步骤三:使用配置文件中的参数

加载配置文件后,我们可以通过Properties对象的getProperty方法来获取配置文件中的参数值。假设我们要获取用户名和密码,代码如下所示:

public class ConfigReader {
    // ...

    public static String getUsername() {
        return properties.getProperty("username");
    }

    public static String getPassword() {
        return properties.getProperty("password");
    }
}

在上面的代码中,我们通过properties.getProperty("username")properties.getProperty("password")方法来获取配置文件中的参数值。

总结

经过以上三个步骤,我们就能够在Java中实现将配置文件放在resource下的文件生效。通过创建配置文件、加载配置文件和使用配置文件中的参数,我们可以方便地管理和使用配置信息。

希望本文对于解决这个问题有所帮助。如果你有任何疑问或者其他问题,欢迎留言讨论。