读取代码:
package com.jz.compute.mc.v2.config; import java.util.Enumeration; import java.util.ResourceBundle; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; public class PropertiesConfig { public static volatile ConcurrentMap<String, String> applicationMap = new ConcurrentHashMap<>(); private final static String dev = "dev"; private final static String test = "test"; private final static String prod = "prod"; private PropertiesConfig() { } public static ConcurrentMap<String, String> getInstance() { return getInstance("application-"); } public static ConcurrentMap<String, String> getInstance(String filePrefix) { if (applicationMap.size() == 0) { synchronized (PropertiesConfig.class) { if (applicationMap.size() == 0) { ResourceBundle application = ResourceBundle.getBundle("application"); ResourceBundle applicationActive = null; String profilesActive = application.containsKey("profiles.active") ? application.getString("profiles.active") : ""; if (PropertiesConfig.prod.equals(profilesActive)) { applicationActive = ResourceBundle.getBundle(filePrefix + "prod"); } else if (PropertiesConfig.test.equals(profilesActive)) { applicationActive = ResourceBundle.getBundle(filePrefix + "test"); } else if (PropertiesConfig.dev.equals(profilesActive)) { applicationActive = ResourceBundle.getBundle(filePrefix + "dev"); } else { } Enumeration<String> keys = application.getKeys(); while (keys.hasMoreElements()) { String key = keys.nextElement(); applicationMap.put(key, application.getString(key)); } if (null != applicationActive) { keys = applicationActive.getKeys(); while (keys.hasMoreElements()) { String key = keys.nextElement(); applicationMap.put(key, applicationActive.getString(key)); } } } } } return applicationMap; } public static void main(String[] args) { System.out.println(PropertiesConfig.getInstance().getOrDefault("eicost.url", "")); } }