Properties属性文件在JAVA应用程序中是常常能够看得见的,也是特别重要的一类文件,用来配置应用程序的一些信息,经过键值对的形式来保存。 java
1、经过spring的形式读取 spring
一、spring配置文件: 框架
- <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
- <property name="locations">
- <list>
- <value>classpath:jdbc.properties</value>
- </list>
- </property>
- </bean>
二、自定义一个读取Properties属性文件的类,继承自org.springframework.beans.factory.config.PropertyPlaceholderConfigurer ide
- 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);
- }
-
- }
三、读取属性文件内容 this
String host = (String) CustomizedPropertyPlaceholderConfigurer.getContextProperty("mail.smtp.host"); spa
2、利用java.util.Properties读取属性文件 继承
一、 资源
- 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"));
二、 get
- 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="资源文件不存在";
- }