package test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
import org. springframework.stereotype.Component;
import org. springframework.util.StringUtils;
@Component
public class PropertiesReader implements IPropertiesReader {
//属性读取器
@Resource
ReloadableResourceBundleMessageSource resourceBundleMessageSource;
private static final Logger log = LoggerFactory.getLogger(PropertiesReader.class);
/**
* 获取布尔型参数
* @param key 参数名称
* @return 参数值
*/
// @Override
public Boolean getBoolean(String key) {
String resultStr = resourceBundleMessageSource.getMessage(key, null, Locale.getDefault());
if("true".equalsIgnoreCase(resultStr)) {
return true;
}else if("false".equalsIgnoreCase("false")) {
return false;
}
else {
throw new IllegalArgumentException("读取 boolean类型的"+key+"异常");
}
}
/**
* 获取字符串型参数
* @param key 参数名称
* @return 参数值
*/
// @Override
public String getString(String key) {
try{
return resourceBundleMessageSource.getMessage(key, null, Locale.getDefault());
}catch(Exception e){
if(log.isErrorEnabled()){
log.error(e.getMessage(),e);
}
return null;
}
}
/**
* 获取字符串型参数
* @param key 参数名称
* @param args 需要替换的变量值
* @return 参数值
*/
// @Override
public String getString(String key, Object[] args){
try{
if(null != args && args.length != 0) {
return resourceBundleMessageSource.getMessage(key, args, Locale.getDefault());
}else{
return getString(key);
}
}catch(Exception e){
if(log.isErrorEnabled()){
log.error(e.getMessage(), e);
}
return null;
}
}
/**
* 获取数字型参数
* @param key 参数名称
* @return 参数值
*/
// @Override
public Integer getInteger(String key) {
try{
String resultStr= resourceBundleMessageSource.getMessage(key, null, Locale. getDefault());
return resultStr != null ? Integer.parseInt(resultStr) : 0;
}catch(Exception e){
if(log.isErrorEnabled()){
log.error(e.getMessage(), e);
}
return null;
}
}
// @Override
public List<String> getList(String key) {
String resultStr= resourceBundleMessageSource.getMessage(key, null, Locale. getDefault());
if(!StringUtils.hasText(resultStr)){
return new ArrayList<String>();
}
return Arrays.asList(resultStr.split(","));
}
}
属性读取器工具类
最新推荐文章于 2022-03-19 14:15:58 发布