zl程序教程

您现在的位置是:首页 >  后端

当前栏目

java 读取不同的配置文件

JAVA配置文件 读取 不同
2023-09-14 08:57:45 时间

关于JAVA 中的Configuration类

properties文件是Java平台默认的配置文件格式,其优点是格式清晰,简单易懂,使用commons-configuration读取properties文件也比较简单,代码如下:

 

基本用法:maven自动加载,pom.xml配置如下:

1.加载jar包,我使用

<dependency>  
    <groupId>commons-configuration</groupId>  
    <artifactId>commons-configuration</artifactId>  
    <version>1.9</version>  
</dependency>  
<!-- commons-configuration 自动加载的是2.1的版本,编译时会报错,所以再加上这个 -->  
<dependency>  
    <groupId>commons-lang</groupId>  
    <artifactId>commons-lang</artifactId>  
    <version>2.6</version>  
</dependency>  

  

common-lang这个包要用新版的,如果不写这个依赖,commons-configuration会下载一个2.1旧版,导致编译出错

2.java代码:

PropertiesConfiguration config = new PropertiesConfiguration(“/database.properties”);  
String userName = config.getString("name");  

  除了getString()方法外,还有getBoolean,getDouble,getInteger等不同返回类型的方法可以调用。

进阶用法:

一个项目有会有多个配置文件,这时有个统一的配置文件管理类就很有必要了,我写了一个简单的,大家可以参考下,有不妥的用法也请指出来

1.java类

package com.xxx.xxx.util;  
  
import java.util.HashMap;  
import java.util.Map;  
  
import org.apache.commons.configuration.ConfigurationException;  
import org.apache.commons.configuration.PropertiesConfiguration;  
/** 
 * <p> 
 * 读取配置文件类 
 * </p> 
 * <p> 
 * 根据配置文件名和属性key返回属性内容,configUtil.get(configFile, property); 
 * </p> 
 * @author shengzhi.rensz 
 * 
 */  
public class configUtil {  
  
    private static configUtil initor = new configUtil();     
      
    private static Map<String, Object> configMap = new HashMap<String, Object>();  
      
    private configUtil() {}  
      
    /** 
     * 获取内容 
     * @param configFile 
     * @param property 
     * @return 
     */  
    public static String get(String configFile, String property) {     
        if(!configMap.containsKey(configFile)) {     
           initor.initConfig(configFile);  
        }  
        PropertiesConfiguration config = (PropertiesConfiguration) configMap.get(configFile);  
        String value = config.getString(property);  
        //TODO LOG  
        return value;     
    }     
      
    /** 
     * 载入配置文件,初始化后加入map 
     * @param configFile 
     */  
    private synchronized void initConfig(String configFile) {      
        try {  
            PropertiesConfiguration config = new PropertiesConfiguration(configFile);  
            configMap.put(configFile, config);  
              
        } catch (ConfigurationException e) {  
            e.printStackTrace();  
        }  
    }     
}  

2.调用方法

configUtil.get("/common/velocity.properties", "input.encoding");  
public static void readProperties() throws ConfigurationException {  
        PropertiesConfiguration pcfg = new PropertiesConfiguration("config/cfg.properties");  
        System.out.println(pcfg.getString("platform.jre"));  
    }  

 

注意,这里的路径一定要搞清楚,配置文件是放在config文件夹中的;