`

Properties工具类

 
阅读更多
package org.jasig.cas.a4.tools;
import java.io.InputStream;
import java.net.URL;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class UtilProperties {
	private static Map propsCache=new HashMap();
	private static Log logger=LogFactory.getLog(UtilProperties.class);
	public static Properties getProperties(String resourceName){
		Properties props=(Properties)propsCache.get(resourceName);
		UtilProperties utilProperties = new UtilProperties();
		if(props==null){
			props = new Properties();
			ClassLoader loader=null;
			if (loader == null) {
	            try {
	                loader = Thread.currentThread().getContextClassLoader();
	            } catch (SecurityException e) {
	                loader = utilProperties.getClass().getClassLoader();
	            }
	        }
			URL url=loader.getSystemResource(resourceName);
			InputStream in = null;

	        try {
	            in = url.openStream();
	            props.load(in);
	        } catch (Exception e) {
	        	try{
	        	in=utilProperties.getClass().getResourceAsStream("/"+resourceName);
	        	props.load(in);
	        	}catch(Exception e1){
	        		 logger.error(" Couldn't find the URL: " + resourceName+e1);  
	 	            return props;
	        	}
	        }
		}
		return props;
	}
	public static String getProperty(String resourceName,String key,String defaultValue){
		Properties props=getProperties(resourceName);
		return props.getProperty(key, defaultValue);
	}
	public static String getProperty(String resourceName,String key){
		return getProperty(resourceName,key, "");
	}
	public static Map getMatchPropertys(String resourceName,String inkey){
		Map result = new HashMap();
		Properties props=(Properties)propsCache.get(resourceName);
		UtilProperties utilProperties = new UtilProperties();
		if(props==null){
			props = new Properties();
			ClassLoader loader=null;
			if (loader == null) {
	            try {
	                loader = Thread.currentThread().getContextClassLoader();
	            } catch (SecurityException e) {
	                loader = utilProperties.getClass().getClassLoader();
	            }
	        }
			URL url=loader.getSystemResource(resourceName);
			InputStream in = null;

	        try {
	            in = url.openStream();
	            props.load(in);

	        } catch (Exception e) {
	        	try{
	        	in=utilProperties.getClass().getResourceAsStream("/"+resourceName);
	        	props.load(in);
	        	}catch(Exception e1){
	        		 logger.error(" Couldn't find the URL: " + resourceName+e1);  
	 	            return result;
	        	}
	        }
		}
        Enumeration en = props.propertyNames();   
        while (en.hasMoreElements()) {   
               String key = (String) en.nextElement();   
               if(key.contains(inkey)){
            	   String Property = props.getProperty (key);  
            	   result.put(key, props.getProperty(key, ""));
               }    
        }   
		return result;	
	}	
}

 

调用:

private final String baseuri = UtilProperties.getProperty("runtime.properties", "cu.cloud.v1");

分享到:
评论

相关推荐

    读取properties文件工具类

    2. **创建properties工具类** 一个基本的`PropertiesUtil`工具类可能包含以下方法: - `loadProperties`: 加载`.properties`文件到`Properties`对象。 - `getProperty`: 根据键获取值。 - `setProperty`: 设置或...

    能保存Properties文件注释的Properties工具类

    针对这个问题,开发者们创建了`CommentedProperties`这样的工具类,以保留属性文件中的注释信息。 `CommentedProperties`是基于Java的自定义Properties扩展,它的核心功能在于加载和保存文件时能够识别并保留注释。...

    读取Properties信息工具类

    在Java编程中,Properties类是用于处理属性文件的关键工具,它...通过创建这样的Properties工具类,我们可以简化与属性文件交互的代码,提高代码的可读性和可维护性。在实际项目中,这样的工具类是非常常见且实用的。

    java对properties的操作工具类

    java对properties的操作工具类 属性文件

    java生成properties工具类

    1.OutputOrderProperties p = new OutputOrderProperties(); 2.FileInputStream fs = new FileInputStream("文件路径"); 3.p.load(new InputStreamReader(fs, "utf-8")); 4.p.put("jdbc.name", dbConfig.getJdbcName...

    properties 工具类 PropertiesUtil java

    下载了就可以直接用。默认路径在项目随意source目录下,获取时直接PropertiesUtil.getInstance().getPropertyValue("xx.properties", "value");

    properties读取工具类设计

    本篇文章将探讨如何设计一个`properties`读取工具类,以便高效、灵活地从这些文件中读取和管理配置参数。 首先,我们需要创建一个`PropertiesUtil`类,它将包含读取`properties`文件的核心方法。这个工具类通常会有...

    java properties文件操作工具类,可追加修改

    此工具类只用于Java后端在操作Properties文件的时候写的工具类,方便properties文件的存取操作

    Property工具类,Properties文件工具类,PropertiesUtils工具类

    在Java编程中,`Property`工具类和`Properties`文件工具类是处理配置文件的关键组件。这些工具类帮助开发者读取、写入以及管理应用程序的配置信息,通常以`.properties`文件的形式存在。`.properties`文件是一种键值...

    utils.properties修改、读取工具类

    Java读取、修改utils.properties工具类,可直接拿去用。

    java生成properties文件工具类

    通过程序生成properties文件的工具类,并可根据添加顺序生成,可添加注释,调用步骤如下: 1.OutputOrderProperties p = new OutputOrderProperties(); 2.FileInputStream fs = new FileInputStream("文件路径"); 3....

    Rabbitmq工具类,java工具类RabbitmqUtil

    `RabbitmqUtil` 是一个专门为Java开发者设计的工具类,简化了与RabbitMQ交互的复杂过程,使得开发者能够更快速、更方便地发送和接收消息。 首先,我们来详细了解一下`RabbitmqUtil`工具类的主要功能: 1. **连接...

    Properties 文件比较工具

    总之,“Properties文件比较工具”是Java开发中一个实用的小型应用,它利用了Java标准库提供的`Properties`类,为开发者提供了便利,提高了工作效率。通过分析`diffProperties.java`和`property.java`源代码,我们...

    Properties类小结

    另外,Properties类还可以与其他工具类结合使用,例如ResourceBundle,以实现国际化(i18n)功能。通过不同语言的.properties文件,我们可以为不同地区的用户提供本地化的消息。 总结起来,Properties类是Java中...

    java连接SqlServer完整代码,工具类,jdbc

    java连接SqlServer完整代码,工具类,jdbc JDBC工具类的构建 1.资源释放 见https://mp.csdn.net/postedit/86577443 2.驱动防二次注册 ``` Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //...

    java mail工具类

    这个工具类的创建旨在简化邮件处理的复杂性,使开发者能够便捷地集成邮件功能。以下是对JavaMail工具类及其相关知识点的详细说明: 1. **JavaMail API**: JavaMail API 是Java平台上的标准邮件接口,提供了发送、...

    Java 读取、获取配置文件.properties中的数据

    Java 读取、获取配置文件.properties 中的数据有多种方法,包括使用 Properties 类、封装的 Properties 工具类和其他方法。在实际应用中,我们可以根据需要选择合适的方法来读取 Properties 文件。

    java配置文件修改读取工具类,包括yml和properties类型文件

    接下来是`PropertiesUtil.java`,这个工具类专注于处理传统的`.properties`配置文件。Properties文件是Java内置支持的一种格式,通常用于存储键值对。`PropertiesUtil`可能包含以下方法: 1. 加载Properties文件:...

Global site tag (gtag.js) - Google Analytics