springMvc 之 【javaBean读取属性配置文件中的值】---非注解方式
2015-08-09 11:20
726 查看
需要的包:
ResourceLoader---
Resource---【spring-core-3.2.2.RELEASE.jar】
System---
Properties---【rt.jar】
对应的工具类:
对工具类的使用:
ResourceLoader---
Resource---【spring-core-3.2.2.RELEASE.jar】
System---
Properties---【rt.jar】
对应的工具类:
package com.openeap.common.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; /** * Properties文件载入工具类. 可载入多个properties文件, 相同的属性在最后载入的文件中的值将会覆盖之前的值,但以System的Property优先. * @version 2013-05-15 */ public class PropertiesLoader { private static Logger logger = LoggerFactory.getLogger(PropertiesLoader.class); private static ResourceLoader resourceLoader = new DefaultResourceLoader(); private final Properties properties; //载入多个文件, 文件路径使用Spring Resource格式. public PropertiesLoader(String... resourcesPaths) { properties = loadProperties(resourcesPaths); } /** * 载入多个文件, 文件路径使用Spring Resource格式. */ private Properties loadProperties(String... resourcesPaths) { //属性内容对象 Properties props = new Properties(); for (String location : resourcesPaths) { InputStream is = null; try { //将属性文件载入资源对象(Resource),location的值如:application.properties Resource resource = resourceLoader.getResource(location); is = resource.getInputStream(); //将流放入Properties对象 props.load(is); } catch (IOException ex) { logger.info("Could not load properties from path:" + location + ", " + ex.getMessage()); } finally { //关闭流 IOUtils.closeQuietly(is); } } return props; } /** * 取出Property,但以System的Property优先,取不到返回空字符串. */ private String getValue(String key) { String systemProperty = System.getProperty(key); if (systemProperty != null) { return systemProperty; } if (properties.containsKey(key)) { return properties.getProperty(key); } return ""; } public Properties getProperties() { return properties; } /** * 取出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; } }
对工具类的使用:
public class Global { /** * 属性文件加载对象 */ private static PropertiesLoader propertiesLoader; /** * 获取配置 */ public static String getConfig(String key) { if (propertiesLoader == null){ propertiesLoader = new PropertiesLoader("application.properties"); } return propertiesLoader.getProperty(key); } ///////////////////////////////////////////////////////// public static String getAdminPath() { return getConfig("adminPath"); } public static String getFrontPath() { return getConfig("frontPath"); } public static String getUrlSuffix() { return getConfig("urlSuffix"); } }
相关文章推荐
- Struts2基本环境搭建过程中容易出现的丢包问题
- Java 并发专题 : Timer的缺陷 用ScheduledExecutorService替代
- Java功底篇系列-01-从==/equals/hashCode开始
- 详解java定时任务
- Ant—使用Ant构建一个简单的Java工程(两)
- PyDev for Eclipse 简介
- Spring的基本用法
- java数据类型讲解
- spring 定时器
- 用记事本写一个简单的java程序
- 常用数制的输入与输出(JAVA)
- Java 两个方法彼此调用导致java.lang.StackOverflowError
- Java Web前后端分离的思考与实践
- Java中的50个关键字
- 【Java多线程】之五:wait, notify and notifyAll
- 重学java23种设计模式(14)命令模式
- java静态代码块真的会优先执行吗
- Java读取文件MD5的两种方案
- java中图的两种存储方式
- Java学习之路:不走弯路,就是捷径