1 importjava.io.IOException;2 importjava.io.InputStream;3 importjava.util.NoSuchElementException;4 importjava.util.Properties;5
6 importorg.apache.commons.io.IOUtils;7 importorg.slf4j.Logger;8 importorg.slf4j.LoggerFactory;9 importorg.springframework.core.io.DefaultResourceLoader;10 importorg.springframework.core.io.Resource;11 importorg.springframework.core.io.ResourceLoader;12
13
17 public classPropertiesLoader {18 private static Logger logger = LoggerFactory.getLogger(PropertiesLoader.class);19 private static ResourceLoader resourceLoader = newDefaultResourceLoader();20 private finalProperties properties;21
22 publicPropertiesLoader(String... resourcesPaths) {23 properties =loadProperties(resourcesPaths);24 }25
26 publicProperties getProperties() {27 returnproperties;28 }29
30
33 publicBoolean getBoolean(String key) {34 String value =getValue(key);35 if (value == null) {36 throw newNoSuchElementException();37 }38 returnBoolean.valueOf(value);39 }40
41
44 public Boolean getBoolean(String key, booleandefaultValue) {45 String value =getValue(key);46 return value != null ?Boolean.valueOf(value) : defaultValue;47 }48
49
52 publicDouble getDouble(String key) {53 String value =getValue(key);54 if (value == null) {55 throw newNoSuchElementException();56 }57 returnDouble.valueOf(value);58 }59
60
63 publicDouble getDouble(String key, Integer defaultValue) {64 String value =getValue(key);65 return value != null ?Double.valueOf(value) : defaultValue;66 }67
68
71 publicInteger getInteger(String key) {72 String value =getValue(key);73 if (value == null) {74 throw newNoSuchElementException();75 }76 returnInteger.valueOf(value);77 }78
79
82 publicInteger getInteger(String key, Integer defaultValue) {83 String value =getValue(key);84 return value != null ?Integer.valueOf(value) : defaultValue;85 }86
87
90 publicString getProperty(String key) {91 String value =getValue(key);92 if (value == null) {93 throw newNoSuchElementException();94 }95 returnvalue;96 }97
98
101 publicString getProperty(String key, String defaultValue) {102 String value =getValue(key);103 return value != null ?value : defaultValue;104 }105
106
109 privateString getValue(String key) {110 String systemProperty =System.getProperty(key);111 if (systemProperty != null) {112 returnsystemProperty;113 }114 if(properties.containsKey(key)) {115 returnproperties.getProperty(key);116 }117 return "";118 }119
120
123 privateProperties loadProperties(String... resourcesPaths) {124 Properties props = newProperties();125 for(String location : resourcesPaths) {126 InputStream is = null;127 try{128 Resource resource =resourceLoader.getResource(location);129 is =resource.getInputStream();130 props.load(is);131 } catch(IOException ex) {132 logger.info("Could not load properties from path:" + location + ", " +ex.getMessage());133 } finally{134 IOUtils.closeQuietly(is);135 }136 }137 returnprops;138 }139 }