ConfigurationProperties Static Variable Injection Pitfalls

Problem Description

When using @ConfigurationProperties annotation, static variables cannot be injected directly.

Solution

private static String copyrightYear;

public static String getCopyrightYear() {
    return copyrightYear;
}

// set method cannot have static keyword
public void setCopyrightYear(String copyrightYear) {
    HaiAnConfig.copyrightYear = copyrightYear;
}

/*
// This won't work for injection
public static void setCopyrightYear(String copyrightYear) {
    HaiAnConfig.copyrightYear = copyrightYear;
}
*/

Key Point

The set method cannot have the static keyword, otherwise @ConfigurationProperties cannot inject values correctly.