目录
工具类
PropertiesUtils
package utils;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
* 〈一句话功能简述〉PropertiesUtils工具类<br>
* 〈功能详细描述〉依次从主配置文件->启用配置文件中获取配置信息
*
* @author 刘斌
* @date 2020/3/2
* @see [相关类/方法](可选)
* @since [产品/模块版本] (可选)
*/
public class PropertiesUtils {
/**
* 主配置文件
*/
private Properties properties;
/**
* 启用配置文件
*/
private Properties propertiesCustom;
private static PropertiesUtils propertiesUtils = new PropertiesUtils();
/**
* 私有构造,禁止直接创建
*/
private PropertiesUtils() {
// 读取配置启用的配置文件名
properties = new Properties();
propertiesCustom = new Properties();
InputStream in = PropertiesUtils.class.getClassLoader().getResourceAsStream("custom.properties");
try {
properties.load(in);
// 加载启用的配置
String property = properties.getProperty("profiles.active");
if (!StringTools.isBlank(property)) {
InputStream cin = PropertiesUtils.class.getClassLoader().getResourceAsStream("custom-" + property + ".properties");
propertiesCustom.load(cin);
}
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 获取单例
*
* @return PropertiesUtils
*/
public static PropertiesUtils getInstance() {
if (propertiesUtils == null) {
propertiesUtils = new PropertiesUtils();
}
return propertiesUtils;
}
/**
* 根据属性名读取值
* 先去主配置查询,如果查询不到,就去启用配置查询
*
* @param name 名称
*/
public String getProperty(String name) {
String val = properties.getProperty(name);
if (StringTools.isBlank(val)) {
val = propertiesCustom.getProperty(name);
}
return val;
}
public static void main(String[] args) {
PropertiesUtils pro = PropertiesUtils.getInstance();
String mainProperty = pro.getProperty("custom.properties.main");
System.out.println(mainProperty);
System.out.println("================");
String profileProperty = pro.getProperty("dev.name");
System.out.println(profileProperty);
}
}
配置文件
custom.properties
##主配值文件
custom.properties.main=主配置文件
##启用的配置文件
profiles.active=dev
custom-dev.properties
dev.name=启用配置文件
调用结果