读取自定义配置文件属性值

1、pom.xml 需要引入的 jar

 
以下相关 jar 可根据实际情况做相应替换

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.4</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.21</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        

 

2、自定义 config.properties 配置文件

 
config.properties 放在 resources 目录下
在这里插入图片描述
 
config.properties 文件内容,根据相关需要自定义

sms.url=app.copen.com
sms.port=8887
sms.accountsid=fdgh4df2hd12sdf56rhd2gh1rt2y1r2e
sms.accounttoken=25r54f4dh4fd4612rty1we5y4554e2we
sms.appid=454jenlk43n65n67k64n7l54n7nlnl33

 

3、工具类

 
PropsUtil.class 工具类 :


import org.apache.log4j.Logger;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 *	属性文件工具类
 */
public final class PropsUtil {

	private static final  Logger logger = Logger.getLogger(PropsUtil.class);

	/**
	 *	属性文件工具类
	 */
	public static Properties loadProps(String fileName){
		Properties props=null;
		InputStream is=null;
		try {
			is=Thread.currentThread().getContextClassLoader()
			                         .getResourceAsStream(fileName);
			if(null==is){
				throw new FileNotFoundException(fileName+"file is not found!");
			}
			props=new Properties();
			props.load(is);
		} catch (IOException e) {
			logger.error("load properties file failure",e);
		}finally{
			try {
				is.close();
			} catch (IOException e) {
				logger.error("close input stream failure",e);
			}
		}
		return props;
	}

	/*
	 * 获取字符型属性(默认值为空字符串)
	 */
	public static String getString(Properties props,String key){
		return getString(props,key,"");
	}
	
	/*
	 * 获取字符型属性(可指定默认值)
	 */
	public static String getString(Properties props,
	                            String key,String defaultValue){
		String value=defaultValue;
		if(props.containsKey(key)){
			value=props.getProperty(key);
		}
		return value;
	}
	
	/*
	 * 获取数值型属性(默认值为0)
	 */
	public static int getInt(Properties props,String key){
		return getInt(props,key,0);
	}
	
	/*
	 * 获取数值型属性(可指定默认值)
	 */
	public static int getInt(Properties props,String key,int defaultValue){
		int value=defaultValue;
		if(props.containsKey(key)){
			value=CastUtil.castInt(props.getProperty(key));
		}
		return value;
	}
	
	/*
	 * 获取布尔型属性(默认为false)
	 */
	public static boolean getBoolean(Properties props,String key){
		return getBoolean(props,key,false);
	}
	
	/*
	 * 获取布尔型属性(可指定默认值)
	 */
	public static boolean getBoolean(Properties props,
	                               String key,Boolean defaultValue){
		boolean value=defaultValue;
		if(props.containsKey(key)){
			value=CastUtil.castBoolean(props.getProperty(key));
		}
		return value;
	}
}

 
CastUtil.class 工具类:


import org.apache.commons.lang3.StringUtils;

/*
 * 转型操作工具类
 */
public final class CastUtil {

	/*
	 * 转为String类
	 */
	public static String castString(Object obj){
		return CastUtil.castString(obj,"");
	}
	
	/*
	 * 转为String类(提供默认值)
	 */
	public static String castString(Object obj,String defaultValue){
		return obj != null ? String.valueOf(obj) : defaultValue;
	}
	
	/*
	 * 转为double型
	 */
	public static double castDouble(Object obj){
		return CastUtil.castDouble(obj,0);
	}
	
	/*
	 * 转为double型,提供默认值
	 */
	public static double castDouble(Object obj,double defaultValue){
		double doubleValue=defaultValue;
		if(obj!=null){
			String strValue =castString(obj);
			if(StringUtils.isNotEmpty(strValue)){
				try {
					doubleValue=Double.parseDouble(strValue);
				} catch (NumberFormatException e) {
					doubleValue=defaultValue;
				}
			}

		}
		return doubleValue;
	}
	
	/*
	 * 转为long型
	 */
	public static long castLong(Object obj){
		return CastUtil.castLong(obj,0);
	}
	
	/*
	 * 转为long型,提供默认值
	 */
	public static long castLong(Object obj,long defaultValue){
		long longValue=defaultValue;
		if(obj!=null){
			String strValue=castString(obj);
			if(StringUtils.isNotEmpty(strValue)){
				try {
					longValue=Long.parseLong(strValue);
				} catch (NumberFormatException e) {
					longValue=defaultValue;
				}
			}
		}
		return longValue;
	}
	
	/*
	 * 转为int型
	 */
	public static int castInt(Object obj){
		return CastUtil.castInt(obj,0);
	}
	/*
	 * 转为int型(提供默认值)
	 */
	public static int castInt(Object obj,int defaultValue){
		int intValue=defaultValue;
		if(obj!=null){
			String strValue=castString(obj);
			if(StringUtils.isNotEmpty(strValue)){
				try {
					intValue=Integer.parseInt(strValue);
				} catch (NumberFormatException e) {
					intValue=defaultValue;
				}
			}
		}
		return intValue;
	}
	
	/*
	 * 转为boolean型
	 */
	public static boolean castBoolean(Object obj){
		return CastUtil.castBoolean(obj,false);
	}
	
	/*
	 * 转为boolean型(提供默认值)
	 */
	public static boolean castBoolean(Object obj,boolean defaultValue){
		boolean booleanValue=defaultValue;
		if(obj!=null){
			booleanValue=Boolean.parseBoolean(castString(obj));
		}
		return booleanValue;
	}


}

 

4、测试调用

 


import com.xxx.xx.util.PropsUtil;

/**
 * @author 
 * @title: GetConfigValue
 * @description: TODO
 * @date 2019/8/15 12:52
 */
public class GetConfigValue {

    public static void main(String[] args) {
        // 获取自定义配置文件 config.properties 中的 sms.url 属性值
        String smsUrl =
                PropsUtil.getString(PropsUtil.loadProps("config.properties"),
                        "sms.url");
        System.out.println("sms.url 的值为:" + smsUrl);
        
        // 获取自定义配置文件 config.properties 中的 sms.port 属性值
        String amsPort =
                PropsUtil.getString(PropsUtil.loadProps("config.properties"),
                "sms.port");
        System.out.println("sms.port 的值为:" + amsPort);
    }

}

 
运行结果:
在这里插入图片描述
 
读取自定义配置文件成功 ~ ~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值