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