Spring Boot 项目,读取自定义配置文件属性
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);
}
}
运行结果:
读取自定义配置文件成功 ~ ~