加载配置项
首先我们来看下Spring框架,Spring框架定义了一个spring-config.xml配置文件,可以在配置文件定义基础包名,JSP基础路径,静态资源文件的路径等等。
现在我们来仿造一下,为框架定义一个简单的配置文件config.properties(默认配置文件为config.properties),放在/src/main/resources目录下。框架需要根据这些配置项来初始化应用。
//config.properties
#基础包名
app.base_package = com.hubwiz.web
#jsp路径
app.jsp_path = /jsp/
#静态资源路径
app.asset_path = /asset/
有了配置文件,我们需要编写一个PropsUtil类来加载配置文件config.properties。获取当前线程的类加载器,getContextClassLoader().getResourceAsStream(fileName)根据文件名称来加载配置文件。
//加载配置文件
public class PropsUtil {
/**
* 加载配置文件
*
* @param fileName 配置文件名
* @return
*/
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 ioe) {
ioe.printStackTrace();
} finally {
if (is != null) {
try {
is.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
return props;
}
/**
* 获取字符型属性(默认值为空字符串)
*
* @param props
* @param key
* @return
*/
public static String getString(Properties props, String key) {
return getString(props, key, "");
}
/**
* 获取字符型属性(可指定默认值)
*
* @param props
* @param key
* @param defaultValue
* @return
*/
public static String getString(Properties props, String key, String defaultValue) {
String value = defaultValue;
if (props.containsKey(key)) {
value = props.getProperty(key);
}
return value;
}
}