package singleton; public class AppConfigEager { // The JVM creates this instance when the class is first loaded. // static guarantees it belongs to the class, not any instance. // final guarantees it can never be reassigned. private static final AppConfigEager INSTANCE = new AppConfigEager(); // Private constructor: prevents any other class from calling new AppConfigEager() private AppConfigEager() { System.out.println("Reading configuration from file..."); // load properties, set up values, etc. } // The only way to get the instance public static AppConfigEager getInstance() { return INSTANCE; } public String getProperty(String key) { return System.getProperty(key, "(not set)"); } }