package com.mycompany.mvc.utils;
import java.io.IOException;
import java.io.InputStream;
import java.util.NoSuchElementException;
import java.util.Properties;
import org.apache.commons.io.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.DefaultResourceLoader;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
/**
* @author Jintao_Ma
* @time 2016年7月21日23:19:39
* @description:
* Properties文件载入工具类. 可载入多个properties文件, 相同的属性在最后载入的文件中的值将会
* 覆盖之前的值,但以System的Property优先.项目的基础工具类,可被上层使用
*/
public class PropertiesLoader {
private static Logger logger = LoggerFactory.getLogger(PropertiesLoader.class);
private static ResourceLoader resourceLoader = new DefaultResourceLoader();
private final Properties properties;
public PropertiesLoader(String[] resourcesPaths) {
properties = loadProperties(resourcesPaths);
}
public Properties getProperties() {
return properties;
}
/**
* 取出Property,但以System的Property优先.
*/
private String getValue(String key) {
String systemProperty = System.getProperty(key);
if (systemProperty != null) {
return systemProperty;
}
return properties.getProperty(key);
}
/**
* 取出String类型的Property,但以System的Property优先,如果都為Null则抛出异常.
*/
public String getProperty(String key) {
String value = getValue(key);
if (value == null) {
throw new NoSuchElementException();
}
return value;
}
/**
* 取出String类型的Property,但以System的Property优先.如果都為Null則返回Default值.
*/
public String getProperty(String key, String defaultValue) {
String value = getValue(key);
return value != null ? value : defaultValue;
}
/**
* 取出Integer类型的Property,但以System的Property优先.如果都為Null或内容错误则抛出异常.
*/
public Integer getInteger(String key) {
String value = getValue(key);
if (value == null) {
throw new NoSuchElementException();
}
return Integer.valueOf(value);
}
/**
* 取出Integer类型的Property,但以System的Property优先.如果都為Null則返回Default值,如果内容错误则抛出异常
*/
public Integer getInteger(String key, Integer defaultValue) {
String value = getValue(key);
return value != null ? Integer.valueOf(value) : defaultValue;
}
/**
* 取出Double类型的Property,但以System的Property优先.如果都為Null或内容错误则抛出异常.
*/
public Double getDouble(String key) {
String value = getValue(key);
if (value == null) {
throw new NoSuchElementException();
}
return Double.valueOf(value);
}
/**
* 取出Double类型的Property,但以System的Property优先.如果都為Null則返回Default值,如果内容错误则抛出异常
*/
public Double getDouble(String key, Integer defaultValue) {
String value = getValue(key);
return value != null ? Double.valueOf(value) : defaultValue;
}
/**
* 取出Boolean类型的Property,但以System的Property优先.如果都為Null抛出异常,如果内容不是true/false则返回false.
*/
public Boolean getBoolean(String key) {
String value = getValue(key);
if (value == null) {
throw new NoSuchElementException();
}
return Boolean.valueOf(value);
}
/**
* 取出Boolean类型的Property,但以System的Property优先.如果都為Null則返回Default值,如果内容不为true/false则返回false.
*/
public Boolean getBoolean(String key, boolean defaultValue) {
String value = getValue(key);
return value != null ? Boolean.valueOf(value) : defaultValue;
}
/**
* 载入多个文件, 文件路径使用Spring Resource格式.
*/
private Properties loadProperties(String[] resourcesPaths) {
Properties props = new Properties();
for (String location : resourcesPaths) {
InputStream is = null;
try {
Resource resource = resourceLoader.getResource(location);
is = resource.getInputStream();
props.load(is);
} catch (IOException ex) {
logger.info("Could not load properties from path:" + location + ", " + ex.getMessage());
} finally {
IOUtils.closeQuietly(is);
}
}
return props;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于Maven的Spring+SpringMvc+Mybatis项目框架,包含文件加载类+监听器+定时器。项目搭建过程可参考文章:http://blog.csdn.net/jintao_ma/article/details/52892625
资源推荐
资源详情
资源评论
收起资源包目录
Maven+Spring+SpringMvc+Mybatis (1859个子文件)
PropertiesLoader.class 4KB
PropertiesLoader.class 4KB
BaseResult.class 3KB
BaseResult.class 3KB
User.class 1KB
User.class 1KB
SystemListener.class 1KB
SystemListener.class 1KB
FileDelete.class 1KB
FileDelete.class 1KB
UserServiceImpl.class 1KB
UserAction.class 1KB
UserServiceImpl.class 1KB
UserDaoImpl.class 1KB
UserDaoImpl.class 1KB
SystemConfig.class 996B
SystemConfig.class 996B
UserAction.class 838B
UserMapper.class 373B
UserMapper.class 373B
UserDao.class 364B
UserDao.class 364B
UserService.class 156B
UserService.class 156B
.classpath 2KB
org.eclipse.wst.common.component 665B
org.eclipse.wst.jsdt.ui.superType.container 49B
easyui.css 58KB
easyui.css 58KB
easyui.css 58KB
easyui.css 58KB
easyui.css 57KB
easyui.css 57KB
easyui.css 57KB
easyui.css 57KB
easyui.css 57KB
easyui.css 57KB
easyui.css 57KB
easyui.css 57KB
easyui.css 57KB
easyui.css 57KB
easyui.css 55KB
easyui.css 55KB
easyui.css 54KB
easyui.css 54KB
easyui.css 54KB
easyui.css 54KB
easyui.css 54KB
easyui.css 54KB
easyui.css 54KB
easyui.css 54KB
easyui.css 54KB
easyui.css 54KB
easyui.css 54KB
easyui.css 54KB
easyui.css 54KB
easyui.css 54KB
tabs.css 9KB
tabs.css 9KB
tabs.css 9KB
tabs.css 9KB
tabs.css 9KB
tabs.css 9KB
tabs.css 9KB
tabs.css 9KB
tabs.css 9KB
tabs.css 9KB
tabs.css 9KB
tabs.css 9KB
tabs.css 9KB
tabs.css 9KB
tabs.css 7KB
tabs.css 7KB
tabs.css 7KB
tabs.css 7KB
tabs.css 7KB
tabs.css 7KB
tabs.css 7KB
tabs.css 7KB
tabs.css 7KB
tabs.css 7KB
tabs.css 7KB
tabs.css 7KB
tabs.css 7KB
tabs.css 7KB
tabs.css 7KB
tabs.css 7KB
mobile.css 7KB
mobile.css 7KB
color.css 6KB
color.css 6KB
datagrid.css 5KB
datagrid.css 5KB
datagrid.css 5KB
datagrid.css 5KB
datagrid.css 5KB
datagrid.css 5KB
datagrid.css 5KB
datagrid.css 5KB
datagrid.css 5KB
共 1859 条
- 1
- 2
- 3
- 4
- 5
- 6
- 19
资源评论
- wenriyan2018-01-26挺好的,正在学习阶段,对我很有帮助
- u0105103622017-11-08评论后可再次下载
- mobingsen2017-10-08很好,非常简单明了
Jintao_Ma
- 粉丝: 384
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功