import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.Properties; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * 屬性文件工具類 */ public final class PropsUtils { private static final Logger LOGGER = LoggerFactory.getLogger(PropsUtil.class); /** * 加載屬性文件 */ public static Properties loadProps(String fileName) { Properties props = null; InputStream is = null; try { is = Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName); if (is == null) { throw new FileNotFoundException(fileName + " file is not found"); } props = new Properties(); props.load(is); } catch (IOException e) { LOGGER.error("load properties file failure", e); } finally { if (is != null) { try { is.close(); } catch (IOException e) { LOGGER.error("close input stream failure", e); } } } return props; } /** * 獲取字符型屬性(默認值爲空字符串) */ public static String getString(Properties props, String key) { return getString(props, key, ""); } /** * 獲取字符型屬性(可指定默認值) */ public static String getString(Properties props, String key, String defaultValue) { String value = defaultValue; if (props.containsKey(key)) { value = props.getProperty(key); } return value; } /** * 獲取數值型屬性(默認值爲 0) */ public static int getInt(Properties props, String key) { return getInt(props, key, 0); } /** * 獲取數值型屬性(可指定默認值) */ public static int getInt(Properties props, String key, int defaultValue) { int value = defaultValue; if (props.containsKey(key)) { value = CastUtil.castInt(props.getProperty(key)); } return value; } /** * 獲取布爾型屬性(默認值爲 false) */ public static boolean getBoolean(Properties props, String key) { return getBoolean(props, key, false); } /** * 獲取布爾型屬性(可指定默認值) */ public static boolean getBoolean(Properties props, String key, boolean defaultValue) { boolean value = defaultValue; if (props.containsKey(key)) { value = CastUtil.castBoolean(props.getProperty(key)); } return value; } }
<!-- 加載配置文件 --> <context:property-placeholder location="classpath:config.properties" /> <!-- 讀取配置文件 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="${web.view.prefix}" /> <property name="suffix" value="${web.view.suffix}" /> </bean>
@Value
在項目啓動時自動注入屬性值後記java
在實際工做中,.properties 配置文件的使用情境,我我的就只能想到上面4種情境。其中,由於咱們幾乎全部的項目都會使用 Spring MVC,因此情境二在我我的的工做中使用最爲頻繁。web