|
|
package com.itheima.util; // 定义该类属于com.itheima.util包
|
|
|
|
|
|
/**
|
|
|
* @program: dormitorySystem
|
|
|
* @description: 属性工具类,用于加载和获取配置文件中的属性
|
|
|
* @author: Joyrocky
|
|
|
* @create: 2019-04-28 23:10
|
|
|
**/
|
|
|
|
|
|
import org.apache.commons.lang3.StringUtils; // 导入Apache Commons Lang库中的StringUtils工具类,用于处理字符串
|
|
|
import org.slf4j.Logger; // 导入SLF4J日志库中的Logger类
|
|
|
import org.slf4j.LoggerFactory; // 导入SLF4J日志库中的LoggerFactory类
|
|
|
import java.io.IOException; // 导入IOException,用于处理IO异常
|
|
|
import java.io.InputStreamReader; // 导入InputStreamReader,用于将字节流转换为字符流
|
|
|
import java.util.Properties; // 导入Properties类,用于读取和操作属性文件
|
|
|
|
|
|
public class PropertiesUtil {
|
|
|
|
|
|
private static Logger logger = LoggerFactory.getLogger(PropertiesUtil.class); // 创建一个Logger对象,用于记录日志
|
|
|
|
|
|
private static Properties props; // 声明一个静态的Properties对象,用于存储加载的属性文件内容
|
|
|
|
|
|
// 静态代码块,用于加载配置文件
|
|
|
static {
|
|
|
String fileName = "mmall.properties"; // 设置要加载的配置文件名称
|
|
|
props = new Properties(); // 实例化Properties对象
|
|
|
try {
|
|
|
// 使用InputStreamReader将配置文件(位于类路径下)加载到Properties对象中,并指定字符集为UTF-8
|
|
|
props.load(new InputStreamReader(PropertiesUtil.class.getClassLoader().getResourceAsStream(fileName), "UTF-8"));
|
|
|
} catch (IOException e) { // 捕获IO异常
|
|
|
logger.error("配置文件读取异常", e); // 记录读取配置文件异常的日志
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取配置文件中指定键的值
|
|
|
*
|
|
|
* @param key 要获取的属性键
|
|
|
* @return 配置文件中指定键的值,如果值为空或未找到则返回null
|
|
|
*/
|
|
|
public static String getProperty(String key){
|
|
|
String value = props.getProperty(key.trim()); // 获取配置文件中指定键对应的值,去除键值的前后空格
|
|
|
if(StringUtils.isBlank(value)){ // 判断获取到的值是否为空或仅包含空白字符
|
|
|
return null; // 如果为空,则返回null
|
|
|
}
|
|
|
return value.trim(); // 如果值不为空,则去除值的前后空格并返回
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取配置文件中指定键的值,如果值为空,则返回默认值
|
|
|
*
|
|
|
* @param key 要获取的属性键
|
|
|
* @param defaultValue 如果配置文件中没有指定键的值,则返回该默认值
|
|
|
* @return 配置文件中指定键的值,如果值为空或未找到则返回默认值
|
|
|
*/
|
|
|
public static String getProperty(String key, String defaultValue){
|
|
|
String value = props.getProperty(key.trim()); // 获取配置文件中指定键对应的值,去除键值的前后空格
|
|
|
if(StringUtils.isBlank(value)){ // 判断获取到的值是否为空或仅包含空白字符
|
|
|
value = defaultValue; // 如果值为空,则使用默认值
|
|
|
}
|
|
|
return value.trim(); // 返回最终的值,去除前后空格
|
|
|
}
|
|
|
|
|
|
}
|