Properties属性文件在JAVA应用程序中是经常可以看得见的,也是特别重要的一类文件,用来配置应用程序的一些信息,通过键值对的形式来保存。
一、通过spring的形式读取
1、spring配置文件:
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:jdbc.properties</value> </list> </property> </bean>
2、自定义一个读取Properties属性文件的类,继承自org.springframework.beans.factory.config.PropertyPlaceholderConfigurer
public class CustomizedPropertyPlaceholderConfigurer extends
PropertyPlaceholderConfigurer {
private static Map<String, Object> ctxPropertiesMap;
@Override
protected void processProperties(
ConfigurableListableBeanFactory beanFactoryToProcess,
Properties props) throws BeansException {
super.processProperties(beanFactoryToProcess, props);
ctxPropertiesMap = new HashMap<String, Object>();
for (Object key : props.keySet()) {
String keyStr = key.toString();
String value = props.getProperty(keyStr);
ctxPropertiesMap.put(keyStr, value);
} www.2cto.com
}
public static Object getContextProperty(String name) {
return ctxPropertiesMap.get(name);
}
}
3、读取属性文件内容
String host = (String) CustomizedPropertyPlaceholderConfigurer.getContextProperty("mail.smtp.host");
二、利用java.util.Properties读取属性文件
1、
InputStream path=this.getServletContext().getResourceAsStream("password.properties");
//InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("password.properties");
/*File filepath=new File(this.getServletContext().getRealPath("password.properties");
InputStream path=new FileInputStream(filepath);*/
Properties pros = new Properties();
try {
pros.load(path);
} catch (IOException ex) {
//System.out.println("file is not exist");
errorMessage="资源文件不存在";
}
System.out.println("username:"+p.getProperty("username")+",password:"+p.getProperty("password"));
2、
ClassPathResource cr = new ClassPathResource("password.properties");//会重新加载spring框架
Properties pros = new Properties();
try {
pros.load(cr.getInputStream());
} catch (IOException ex) {
//System.out.println("file is not exist");
errorMessage="资源文件不存在";
}
精彩科技工作室