文档章节

java读取Properties属性文件的方法

南的糊途
 南的糊途
发布于 2013/03/13 17:05
字数 298
阅读 192
收藏 3

Properties属性文件在JAVA应用程序中是经常可以看得见的,也是特别重要的一类文件,用来配置应用程序的一些信息,通过键值对的形式来保存。

 

一、通过spring的形式读取

1、spring配置文件:

Xml代码
  1. <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">     
  2.        <property name="locations">     
  3.             <list>     
  4.                <value>classpath:jdbc.properties</value>     
  5.             </list>     
  6.        </property>     
  7. </bean>     

 2、自定义一个读取Properties属性文件的类,继承自org.springframework.beans.factory.config.PropertyPlaceholderConfigurer

Java代码
  1. public class CustomizedPropertyPlaceholderConfigurer extends   
  2.         PropertyPlaceholderConfigurer {   
  3.    
  4.     private static Map<String, Object> ctxPropertiesMap;   
  5.    
  6.     @Override   
  7.     protected void processProperties(   
  8.             ConfigurableListableBeanFactory beanFactoryToProcess,   
  9.             Properties props) throws BeansException {   
  10.         super.processProperties(beanFactoryToProcess, props);   
  11.         ctxPropertiesMap = new HashMap<String, Object>();   
  12.         for (Object key : props.keySet()) {   
  13.             String keyStr = key.toString();   
  14.             String value = props.getProperty(keyStr);   
  15.             ctxPropertiesMap.put(keyStr, value);   
  16.         }   www.2cto.com  
  17.     }   
  18.    
  19.     public static Object getContextProperty(String name) {   
  20.         return ctxPropertiesMap.get(name);   
  21.     }   
  22.    
  23. }   

 3、读取属性文件内容

String host =  (String) CustomizedPropertyPlaceholderConfigurer.getContextProperty("mail.smtp.host");

二、利用java.util.Properties读取属性文件

1、

Java代码
  1. InputStream path=this.getServletContext().getResourceAsStream("password.properties");  
  2.        //InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("password.properties");  
  3.   
  4.    /*File filepath=new File(this.getServletContext().getRealPath("password.properties"); 
  5.        InputStream path=new FileInputStream(filepath);*/  
  6.        Properties pros = new Properties();  
  7.        try {  
  8.            pros.load(path);  
  9.        } catch (IOException ex) {  
  10.            //System.out.println("file is not exist");  
  11.            errorMessage="资源文件不存在";  
  12.        }  
  13.        System.out.println("username:"+p.getProperty("username")+",password:"+p.getProperty("password"));  

 2、

Java代码
  1. ClassPathResource cr = new ClassPathResource("password.properties");//会重新加载spring框架  
  2.        Properties pros = new Properties();  
  3.        try {  
  4.            pros.load(cr.getInputStream());  
  5.        } catch (IOException ex) {  
  6.            //System.out.println("file is not exist");  
  7.            errorMessage="资源文件不存在";  
  8.        }  

 

© 著作权归作者所有

共有 人打赏支持
南的糊途
粉丝 4
博文 7
码字总数 7456
作品 0
长沙
程序员
私信 提问
java基础专栏—Properties

Properties 一个持久的属性集。Properties可以保存在流中或从流中加载,Map中每个键和值都对应字符串 HashTable的子类,Map集合的方法都可以使用,线程安全 该集合没有泛型,且不能写泛型 它...

T-newcomer
2017/10/21
0
0
Mybatis 关键组件(注意各组件的最佳作用域)

Mybatis 几个使用时的重要组件 SqlSessionFactoryBuilder 这个类可以被实例化、使用和丢弃,一旦创建了 SqlSessionFactory,就不再需要它了。因此 SqlSessionFactoryBuilder 实例的最佳作用域...

xd03122049
2018/07/22
0
0
品读Mybatis源码---(1)解析配置文件

Mybatis,用了这么久,背景自不用说。我还记得,第一次使用,还在成铁科研,做电务那个OA系统的时候,在二代、罗尼玛的带领下,首次接触到的。由于之前的工程一直使用Hibernate,一下切换到M...

心中的理想乡
02/06
0
0
System.getProperty("user.dir")

System.getProperty("user.dir"); 获得系统属性 getProperties public static Properties getProperties() 确定当前的系统属性。 首先,如果有安全管理器,则不带参数直接调用其 checkPrope......

小落i
2014/03/27
0
0
window下Tomcat内存设置

windows中大家都知道,JAVA程序启动时都会JVM都会分配一个初始内存和最大内存给这个应用程序。这个初始内存和最大内存在一定程度都会影响程序的性能。比如说在应用程序用到最大内存的时候,J...

郑剑凡
2010/12/17
0
1

没有更多内容

加载失败,请刷新页面

加载更多

java框架学习日志-13(Mybatis基本概念和简单的例子)

在mybatis初次学习Mybatis的时候,遇到了很多问题,虽然阿里云的视频有教学,但是视频教学所使用的软件和我自己使用的软件不用,我自己用的数据库是oracle数据库,开发环境是idea。而且视频中...

白话
6分钟前
1
0
Java基础:String、StringBuffer和StringBuilder的区别

1 String String:字符串常量,字符串长度不可变。Java中String是immutable(不可变)的。 String类的包含如下定义: /** The value is used for character storage. */private final cha...

watermelon11
32分钟前
2
0
mogodb服务

部署MongoDB 官网: https://www.mongodb.com/download-center/community 创建mongo数据目录 mkdir /data/mongodb 二进制部署 wget -c https://fastdl.mongodb.org/linux/mongodb-linux-x8......

以谁为师
昨天
5
0
大神教你Debian GNU/Linux 9.7 “Stretch” Live和安装镜像开放下载

Debian项目团队于昨天发布了Debian GNU/Linux 9 "Stretch" 的第7个维护版本更新,重点修复了APT软件管理器中存在的安全漏洞。在敦促每位用户尽快升级系统的同时,Debian团队还发布了Debian ...

linux-tao
昨天
4
0
PHP 相关配置

1. php-fpm的pool 编辑php-fpm配置文件php-fpm.con vim /usr/local/php/etc/php-fpm.conf //在[global]部分增加以下内容 include = etc/php-fpm.d/*.conf # 相当与Nginx的虚拟主机文件 “vho......

Yue_Chen
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部