Java Reflection to Access Configuration File Data

Reading Configuration File Data Using Reflection

In Java, it's common to read information from configuration files to set up application settings. Sometimes, using reflection to access these values can increase code flexibility and maintainability. Below is an explanation of how to use reflection to rertieve configuration data, along with a concrete example.

1. Create a Configuration File

First, we need to create a file to store configuration data. We can use a .properties file for this purpose. In this example, we create a config.properties file with the following content:

username=admin
password=123456

2. Create a Config Class

Next, we create a Config class that reads the configuration file. We use reflection to dynamically load properties and provide getter methods to access the values. Here is the code:

import java.io.FileInputStream;
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.Properties;

public class Config {
    private String user;
    private String secret;
    
    public Config() {
        try {
            Properties props = new Properties();
            props.load(new FileInputStream("config.properties"));
            Field[] fields = this.getClass().getDeclaredFields();
            for (Field field : fields) {
                field.setAccessible(true);
                field.set(this, props.getProperty(field.getName()));
            }
        } catch (IOException | IllegalAccessException e) {
            e.printStackTrace();
        }
    }
    
    public String getUser() {
        return user;
    }
    
    public String getSecret() {
        return secret;
    }
}

3. Use the Config Class

Now, we can use the Config class to access the configuration file data. Here is an example of how to use it:

public class Main {
    public static void main(String[] args) {
        Config config = new Config();
        System.out.println("User: " + config.getUser());
        System.out.println("Secret: " + config.getSecret());
    }
}

When running the Main class, it will output the username and password from the configuration file.

4. Sequence Diagram

Below is a sequence diagram illustrating the process of reading configuration file data using reflection:

sequenceDiagram
    participant Main
    participant Config
    participant Properties

    Main->>Config: Instantiate Config object
    Config->>Properties: Read config.properties file
    Properties->>Config: Return Properties object
    Config->>Config: Use reflection to load properties and assign values
    Config->>Main: Return Config object
    Main->>Config: Call getter methods to retrieve values
    Config->>Main: Return values

By following these steps, we successfully used reflection to access configuration data. This design makes the code more flexible, easier to maintain, and extendable. If configuration data needs to be modified, only the configuration file needs to be updated without changing the code. This is a common method for reading configuration files.

Tags: java reflection configuration properties

Posted on Sat, 25 Jul 2026 16:57:28 +0000 by nloding